网站应用登录开发指南
准备工作
网站应用登录是基于OAuth2.0协议标准构建的OAuth2.0授权登录系统。
在进行OAuth2.在进行OAuth2.0授权登录接入之前,在开放平台注册开发者帐号,并拥有一个已审核通过的网站应用,并获得相应的AppID和AppSecret,申请登录且通过审核后,可开始接入流程。
授权流程说明
OAuth2.0授权登录让用户使用身份安全登录第三方应用或网站,在用户授权登录已接入OAuth2.0的第三方应用后,第三方可以获取到用户的接口调用凭证(access_token),通过access_token可以进行开放平台授权关系接口调用,从而可实现获取用户基本开放信息和帮助用户实现基础开放功能等。
OAuth2.0授权登录目前支持authorization_code模式,适用于拥有server端的应用授权。该模式整体流程为:
1.1. 第三方发起授权登录请求,用户允许授权第三方应用后,会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数;
2.2. 通过code参数加上AppID和AppSecret等,通过API换取access_token;
3.3. 通过access_token进行接口调用,获取用户基本数据资源或帮助用户实现基本操作。
获取access_token时序图:
第一步:请求CODE
第三方使用网站应用授权登录前请注意已获取相应网页授权作用域(scope=snsapi_login),则可以通过在PC端打开以下链接:
open.weixin.qq/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
若提示“该链接无法访问”,请检查参数是否填写错误,如redirect_uri的域名与审核时填写的授权域名不一致或scope不为snsapi_login。
网参数说明
参数
是否必须
说明
appid
应用唯一标识
redirect_uri
重定向地址,需要进行UrlEncode
response_type
填code
scope
应用授权作用域,拥有多个作用域用逗号(,)分隔,网页应用目前仅填写snsapi_login即可
state
用于保持请求和回调的状态,授权请求后原样带回给第三方。该参数可用于防止csrf攻击(跨站请求伪造攻击),建议第三方带上该参数,可设置为简单的随机数加session进行校验
返回说明
用户允许授权后,将会重定向到redirect_uri的网址上,并且带上code和state参数
redirect_uri?code=CODE&state=STATE
若用户禁止授权,则重定向后不会带上code参数,仅会带上state参数
redirect_uri?state=STATE
请求示例
登录一号店网站应用
passport.yhd/wechat/login.do
打开后,一号店会生成state参数,跳转到
open.weixin.qq/connect/qrconnect?appid=wxbdc5610cc59c1631&redirect_uri=https%3A%2F%2Fpassport.yhd%2Fwechat%2Fcallback.do&response_type=code&scope=snsapi_login&state=3d6be0a4035d839573b04816624a415e#wechat_redirect
用户使用扫描二维码并且确认登录后,PC端会跳转到
passport.yhd/wechat/callback.do?code=CODE&state=3d6be0a4035d839573b04816624a415e