PC网站应用接入微信登陆

参考文档:api

https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316505&token=&lang=zh_CN微信

https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316518&token=&lang=zh_CNsession

 

微信开放平台里面的文档已经说明的很详细了。这里再用实例补充下。app

 

1.发送请求code

微信登陆的请求连接:https://open.weixin.qq.com/connect/qrconnect?appid=12312312312312&redirect_uri=www.baidu.com&response_type=code&scope=snsapi_login&state=3072355978#wechat_redirectcsrf

参数说明:token

appid:应用惟一标识,必填接口

redirect_uri:重定向地址,须要进行UrlEncode,必填作用域

response_type: code,必填文档

scope:应用受权做用域,拥有多个做用域用逗号(,)分隔,网页应用目前仅填写snsapi_login便可,必填

state:用于保持请求和回调的状态,受权请求后原样带回给第三方。该参数可用于防止csrf攻击(跨站请求伪造攻击),建议第三方带上该参数,可设置为简单的随机数加session进行校验,非必填

 

用户容许受权后,将会重定向到redirect_uri的网址上,而且带上code和state参数:www.baidu.com?code=CODE&state=STATE

若用户禁止受权,则重定向后不会带上code参数,仅会带上state参数:www.baidu.com?state=STATE

 

第二步:经过code获取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,必填

正确的返回:


"access_token":"ACCESS_TOKEN", 
"expires_in":7200, 
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID", 
"scope":"SCOPE",
"unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"}

参数说明:

access_token:接口调用凭证

expires_in: access_token接口调用凭证超时时间,单位(秒)(目前为2个小时)

refresh_token: 用户刷新access_token

openid: 受权用户惟一标识

scope: 用户受权的做用域,使用逗号(,)分隔

unionid: 只有在用户将公众号绑定到微信开放平台账号后,才会出现该字段。

 

access_token是调用受权关系接口的调用凭证,因为access_token有效期(目前为2个小时)较短,当access_token超时后,可使用refresh_token进行刷新。refresh_token拥有较长的有效期(30天),当refresh_token失效的后,须要用户从新受权。

 

获取第一步的code后,请求如下连接进行refresh_token:

https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN

参数说明:

appid:应用惟一标识,必填

grant_type:填refresh_token,必填

refresh_token:填写经过access_token获取到的refresh_token参数,必填

正确的返回:


"access_token":"ACCESS_TOKEN", 
"expires_in":7200, 
"refresh_token":"REFRESH_TOKEN", 
"openid":"OPENID", 
"scope":"SCOPE" 
}

 

第三步:经过access_token调用接口

获取access_token后,进行接口调用,有如下前提:

1. access_token有效且未超时;

2. 微信用户已受权给第三方应用账号相应接口做用域(scope)。

相关文章
相关标签/搜索