微信OPENID授权方法

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

先来几个关键字

Openid  微信ip(属于唯一指向公众号的id)

redirect_uri  授权回调地址

State 回调地址带参数

Appid  公众号的唯一标识

access_token 授权凭证

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

微信授权有分两种授权

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

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

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 来验证 

时间: 2024-10-06 09:12:06

微信OPENID授权方法的相关文章

微信网页授权——获取code、access_token、openid,及跨域问题解决

首先在微信开发文档中有提到微信网页授权的操作步骤: 第一步:用户同意授权,获取code 在确保微信公众账号拥有授权作用域(scope参数)的权限的前提下(服务号获得高级接口后,默认拥有scope参数中的snsapi_base和snsapi_userinfo),引导关注者打开如下页面: https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri = REDIRECT_URL&response_typ

微信公众平台,微信网页授权,redirect_uri参数错误,解决方法!

刚才在做微信网页授权的时候,发生一个错误!!!微信网页授权redirect_uri 参数错误! 遇到问题,第一时间应该做的就是查看官网微信公众平台的技术文档. 微信网页授权 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域名的说明 1.在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的"开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息"的配置选项中,修改授权回调域名

微信网页授权认证获取用户的详细信息,实现自动登陆-微信公众号开发干货

原创声明:本文为本人原创作品,绝非他处转账,转载请联系博主 从接触公众号到现在,开发维护了2个公众号,开发过程中遇到很多问题,现在把部分模块功能在这备案一下,做个总结也希望能给其他人帮助 工欲善其事,必先利其器,先看看开发公众号需要准备或了解什么 web开发工具:官方提供的开发工具,使用自己的微信号来调试微信网页授权.调试.检验页面的 JS-SDK 相关功能与权限,模拟大部分 SDK 的输入和输出.下载地址:web开发工具下载 开发文档:https://mp.weixin.qq.com/wiki

微信 oauth授权 获取用户的信息

应用场景 (1)点击菜单直接链接跳转,这样直接跳是获取不到用户的openid的,需要用到这个 (2)获取用户的一些基本信息,头像,呢称,需要用到这个 准备 需要在公众号里面配置一个应用域名,不配置这个的话,跳转后就是空白页面 步骤 (一) //$callback="一个回调的网址比如http://www.baidu.com/auth.php"; $param ['redirect_uri'] = $callback . '&getOpenId=1';//&getOpen

微信网页授权获取用户基本信息

微信公众号可以通过微信网页授权机制,来获取用户基本信息,可以用于微信登录功能 关于网页授权的两种scope的区别说明 1.静默授权:以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的.用户感知的就是直接进入了回调页(往往是业务页面) 2.显示授权:以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的.但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的

玩玩微信公众号Java版之六:微信网页授权

我们经常会访问一些网站,用微信登录的时候需要用到授权,那么微信网页授权是怎么一回事呢,一起来看看吧! 参考官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842 官方的文档有很详细的说明,这里就主要分析重要的几点: 第一,网页授权分类及说明: 1.以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的.用户感知的就是直接进入了回调页(往往

微信网页授权demo2

1.在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,修改授权回调域名.请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加 http:// 等协议头: 比如需要网页授权的域名为:www.qq.com,配置以后此域名下面的页面http://www.qq.com/music.html . http://www.qq.com/login.html 都可以进行OAuth2.0鉴权.

微信公众号开发系列-获取微信OpenID

在微信开发时候在做消息接口交互的时候须要使用带微信加密ID(OpenId),下面讲讲述2中类型方式获取微信OpenID.接收事件推送方式和网页授权获取用户基本信息方式获取. 1.通过接收被动消息方式获取OpenId(接收事件推送方式).下面事件中都能够获取到OpenID 关注/取消关注事件 用户在关注与取消关注公众号时.微信会把这个事件推送到开发人员填写的URL.方便开发人员给用户下发欢迎消息或者做帐号的解绑. 微信server在五秒内收不到响应会断掉连接,而且又一次发起请求,总共重试三次 关于

网站微信静默授权流程

静默授权登录方法写在基类中.需要静默授权注册登录的页面继承此方法即可. 1.  用户访问有调用此方法的页面 2.  判断是否登录状态,未登录则执行第三步 3.  判断是否微信中,如果是,则执行第四步 4.  判断url中是否有code参数(注:微信授权后的回调url中一定会带上此参数,所以,我们自己的站点切不可随意在url中加此参数).如果没有code参数,则执行第5步.否则,执行第7步 5.  判断用户24小时内是否主动点过退出登录,如果是,则不再执行静默授权登录流程.如果否,则执行第6步 6