微信OPENID受权方法

今天搞了下微信受权, 总结了下微信的受权规则与步骤mysql

 

先来几个关键字sql

Openid  微信ip(属于惟一指向公众号的id)数据库

redirect_uri  受权回调地址api

State 回调地址带参数缓存

Appid  公众号的惟一标识微信

access_token 受权凭证app

Code 填写第一步获取的code参数nosql

微信受权有分两种受权工具

明性受权snsapi_userinfo  (拉取用户信息)

隐性受权 snsapi_base (只拉取微信openid)spa

 

OK,这些是玩受权的几个重要的参数.下面看下步骤如何实现

第一步: 用户赞成受权,获取code

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

上面有几个参数, 须要解释下,

大写的参数, 是要大家去填写的

APPID : 公众号里面的appid 在开发者工具那里能看到

REDIRECT_URL: 回调地址 ( 受权以后该访问哪一个地址)

STATE : 参数, 经过域名方式传过来的参数, 可接受

SCOPE: 受权方式( 明性受权和隐形受权)

 

这个完成了以后 他会跳到你的回调地址并返回 code值  和state值. ( )

 

这时候 要执行第二个步骤:  (经过code获取aesccos_token和openid)

获取code后,请求如下连接获取access_token: https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

地址如上, 依然要把参数贴上。

可是要记得把CODE贴上去

 

经过这一步能获取到asccos_token

!!!这时候会要注意一个规则

access_token 一天只能访问2000次.  过了2000次以后会有报错40001.要到次日早上才能从新的刷新.

不过这个能够用一个缓存access_token的方法来使用, 由于access_token方法的缓存时间是7200秒  

这时候咱们能够把他缓存在mysql或者nosql中, 用于在下次缓存的时候直接调用access_token, 这样就能缓解当天2000次调用的规则.

使用方法以下:

获取第二步的refresh_token后,请求如下连接获取access_token: https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN

经过REFRESH_TOKEN 来获取一个长期能使用的access_token,而后缓存在数据库里面,用于下次调用,

由于只有7200秒, 他会有无效,报错是40003. 这时候咱们能够用经过一个检测方法来判断这个40003报错, 而后进行下一次的ACCESS_TOKEN进行下次缓存

http:GET(请使用https协议)https://api.weixin.qq.com/sns/auth?access_token=ACCESS_TOKEN&openid=OPENID

经过OPENID + ACCESS_TOKEN 来验证 

相关文章
相关标签/搜索