• 微信授权网页登陆,oauth


    1、在微信公众号请求用户网页授权之前。开发人员须要先到公众平台官网中的开发人员中心页配置授权回调域名。请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加http://等协议头。
    2、授权回调域名配置规范为全域名。比方须要网页授权的域名为:www.qq.com。配置以后此域名以下的页面http://www.qq.com/music.html 、 http://www.qq.com/login.html 都能够进行OAuth2.0鉴权。但http://pay.qq.com 、 http://music.qq.com 、 http://qq.com无法进行OAuth2.0鉴权
    3、假设公众号登录授权给了第三方开发人员来进行管理。则不必做不论什么设置,由第三方取代公众号实现网页授权就可以

    第一步:用户允许授权。获取code

    在确保微信公众账号拥有授权作用域(scope參数)的权限的前提下(服务号获得高级接口后。默认拥有scope參数中的snsapi_base和snsapi_userinfo),引导关注者打开例如以下页面:

    https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
    若提示“该链接无法訪问”,请检查參数是否填写错误。是否拥有scope參数相应的授权作用域权限。

    參数说明

    參数 是否必须 说明
    appid 公众号的唯一标识
    redirect_uri 授权后重定向的回调链接地址,请使用urlencode对链接进行处理

    特此声明:此回调的url,应该是在相应公众号所设置的域名下的訪问路径。假设不是。则浏览器回提示出“该链接无法訪问”
    假设是jsp,能够写成相应的action,
    或者(1:“http://www.xiaoyouho.com/login.jsp
    比如(2:”www.xiaoyouho.com/wechatAction_login.do,“


    一、进行url编码后。就是例如以下的链接了https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx4f3aaf0ea47fc448&redirect_uri=http%3a%2f%2fwww.xiaoyouho.com%2flogin.jsp&response_type=code&scope=snsapi_userinfo&state=promotionID#wechat_redirect
    在微信浏览器里打开
    二、
    打开后提示是否登录授权
    点击同意后。浏览器会重定向到上面redirect_uri相应的路径,且会加上state相应的參数
    在,浏览器里复制 已经跳转的链接 就可以查看。
    比如(1:
    http://www.xiaoyouho.com/login.jsp?code=0212d725f3066e54f482caf6fa79520X&state=promotionID

    假设是action,则从定向到相应的action, 那么我们就能够在相应的后台代码中获取咱们须要的參数了“code”(下文接扫)
    String code = request.getParameter("code");
    String param = request.getParameter("state");
    response_type 返回类型,请填写code
    scope 应用授权作用域,snsapi_base (不弹出授权页面,直接跳转。仅仅能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。而且,即使在未关注的情况下。仅仅要用户授权,也能获取其信息
    state 重定向后会带上state參数,开发人员能够填写a-zA-Z0-9的參数值,最多128字节

    假设是多个參数,“=” 会被编码成,“%3D”
    #wechat_redirect 不管直接打开还是做页面302重定向时候,必须带此參数




    第二步

    用户允许授权后

    假设用户允许授权,页面将跳转至 redirect_uri/?

    code=CODE&state=STATE。若用户禁止授权。则重定向后不会带上code參数,仅会带上state參数redirect_uri?state=STATE

    code说明 :
    code作为换取access_token的票据,每次用户授权带上的code将不一样,code仅仅能使用一次。5分钟未被使用自己主动过期。


    通过code获取access_token
    首先请注意,这里通过code换取的是一个特殊的网页授权access_token,与基础支持中的access_token(该access_token用于调用其它接口)不同。公众号可通过下述接口来获取网页授权access_token。

    假设网页授权的作用域为snsapi_base,则本步骤中获取到网页授权access_token的同一时候。也获取到了openid,snsapi_base式的网页授权流程即到此为止。


    假设是重定向到action,则訪问下面的链接获取access_token
    https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

    參数 是否必须 说明
    appid 公众号的唯一标识
    secret 公众号的appsecret
    code 填写第一步获取的code參数
    grant_type 填写为authorization_code


    正确时返回的JSON数据包例如以下:

    {
       "access_token":"ACCESS_TOKEN",
       "expires_in":7200,
       "refresh_token":"REFRESH_TOKEN",
       "openid":"OPENID",
       "scope":"SCOPE",
       "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
    }
    參数 描写叙述
    access_token 网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同
    expires_in access_token接口调用凭证超时时间,单位(秒)
    refresh_token 用户刷新access_token
    openid 用户唯一标识
    scope 用户授权的作用域,使用逗号(,)分隔

    第三步:拉取用户信息(需scope为 snsapi_userinfo)

    假设网页授权作用域为snsapi_userinfo,则此时开发人员能够通过access_token和openid拉取用户信息了。


    參数说明

    參数 描写叙述
    access_token 网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同
    openid 用户的唯一标识
    lang 返回国家地区语言版本号,zh_CN 简体,zh_TW 繁体,en 英语

    返回说明

    正确时返回的JSON数据包例如以下:

    {
       "openid":" OPENID",
       " nickname": NICKNAME,
       "sex":"1",
       "province":"PROVINCE"
       "city":"CITY",
       "country":"COUNTRY",
        "headimgurl":    "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46", 
    	"privilege":[
    	"PRIVILEGE1"
    	"PRIVILEGE2"
        ],
        "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
    }


       获取微信开发的相关资料,技术分享,小程序开发。关注以下的二维码





  • 相关阅读:
    ClickOne :添加ClickOnce程序的快捷方式
    C#: 通过html调用WinForm 。。。。。
    JQuery:常用方法一览
    Jquery:Ajax解析XML数据(同步及异步调用)
    系统管理:服务器超级隐藏账户的建立与检测大全[转载]
    Jquery :动态给Table指定行或尾行插入tr和相关,遍历页面所有控件获取id
    .Net : webBrowser弹出新页面,在当前Form窗体打开,可设置屏蔽当前网页的js错误。。。。
    Visual Studio 设置:包括根据不同类型的开发活动对集成开发环境 (IDE) 所做的各种自定义设置
    VB.Net : ApplicationEvents类中,创建主程序的快捷方式 , 捕获程序未Try的错误及抛出相关的类和方法名 , 是否联机等相关。。
    [转载]JavaScript 图片预览效果
  • 原文地址:https://www.cnblogs.com/yfceshi/p/6848246.html
Copyright © 2020-2023  润新知