微信OPENID授权方法
今天搞了下微信授权, 总结了下微信的授权规则与步骤
先来几个关键字
Openid 微信ip(属于唯一指向公众号的id)
redirect_uri 授权回调地址
State 回调地址带参数
Appid 公众号的唯一标识
access_token 授权凭证
Code 填写第一步获取的code参数
微信授权有分两种授权
明性授权snsapi_userinfo (拉取用户信息)
隐性授权 snsapi_base (只拉取微信openid)
OK,这些是玩授权的几个重要的参数.下面看下步骤如何实现
第一步: 用户同意授权,获取code
上面有几个参数, 需要解释下,
大写的参数, 是要你们去填写的
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 来验证
微信OPENID授权方法的更多相关文章
- 网站微信登录授权 ASP.NET
最新做一些项目都有微信登录注册什么的,今天就把自己整理的demo提供给大家 微信认证流程(我自己简称三次握手): 1.用户同意授权,获取code 2.通过code换取网页授权access_token, ...
- 关于微信登录授权获取unionid的方法
前言:微信登录授权是目前普遍存在于小程序的,还有一种静默授权方式是微信提供的但是不推荐使用,由于不同设备登录openid是不同的那么我们应该怎样拿到一个唯一的ID呢,下面做分享 wxml代码 < ...
- 微信公众平台实现获取用户OpenID的方法
这篇文章主要介绍了微信公众平台实现获取用户OpenID的方法,需要开发人员经过微信授权后获取高级接口才能使用此功能,用户OpenID对于微信公众平台建设有着非常广泛的用途,需要的朋友可以参考下 本文实 ...
- 微信小程序最新授权方法,getUserInfo
20180511微信小程序正式关闭原先getUserInfo的逻辑 不再允许自动弹出授权框. 方法一: index.wxml(准备一个用于给用户授权的页面,我这里直接用了一个全屏按钮) <vie ...
- 微信h5支付“网站域名ICP备案主体与商户号主体不一致”的解决方法,H5微信支付 授权函下载
如下图所示: 微信h5支付“网站域名ICP备案主体与商户号主体不一致”: 需提交H5微信支付 授权函 下载地址:https://download.csdn.net/download/a72400815 ...
- 玩玩微信公众号Java版之六:微信网页授权
我们经常会访问一些网站,用微信登录的时候需要用到授权,那么微信网页授权是怎么一回事呢,一起来看看吧! 参考官方文档:https://mp.weixin.qq.com/wiki?t=resource ...
- 微信公众号开发系列-获取微信OpenID
在微信开发时候在做消息接口交互的时候须要使用带微信加密ID(OpenId),下面讲讲述2中类型方式获取微信OpenID.接收事件推送方式和网页授权获取用户基本信息方式获取. 1.通过接收被动消息方式获 ...
- 防止活动上线时 微信openid 被伪造的解决办法
背景 前不久上线了一个 campaign 项目,一个 h5,后端为php,用户可以在微信中通过网页授权的方式登录,然后用微信 openid 作为唯一标识符进行签到和抽奖的操作. 结果后期出现了很多脏数 ...
- Java微信公众平台开发(十六)--微信网页授权(OAuth2.0授权)获取用户基本信息
转自:http://www.cuiyongzhi.com/post/78.html 好长时间没有写文章了,主要是最近的工作和生活上的事情比较多而且繁琐,其实到现在我依然还是感觉有些迷茫,最后还是决定静 ...
随机推荐
- php正则验证sql方注入
<?php function inject_check($Sql_Str) {//自动过滤Sql的注入语句. $check=preg_match('/select|insert|update|d ...
- ZendFramework 环境部署
查看源码 int_autoloader.php 文件中,发现应用了一个 AutoloaderFactory 的命名空间,路径写得是相对路径,所以需要在 php.ini 中定义一个 inclde_pat ...
- awk之7 常用函数的解析
1.区域获取 substr(区域f,起始位置n1,获取范围n2) 解析:获取某个区域f内,从起始位置n1开始算起的n2个字符组成的字符串.如果n2不存在,则返回从n1开始到区域结束的内容. 例子:获取 ...
- Dividing (hdu 1059 多重背包)
Dividing Sample Input 1 0 1 2 0 0 价值为1,2,3,4,5,6的物品数目分别为 1 0 1 2 0 0,求能否将这些物品按价值分为两堆,转化为多重背包.1 0 0 0 ...
- Sunscreen(POJ 3614 优先队列)
Sunscreen Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5898 Accepted: 2068 Descrip ...
- C++----练习--string输入输出
1.要使用标准库中的string 类型.也要增加头文件 #include<string> 2.例子: #include<iostream> #include<string ...
- Bing必应(Yahoo雅虎)搜索引擎登录网站 - Blog透视镜
Bing必应是微软的搜索引擎,原本是置放在MSN网站上的,微软重新开发并改为新的名子,只要连到官网,登录网站后,过了不久,搜索引擎就会用爬虫,来检索你的网站,等过了一阵子之后,自然就可以找到你的文章. ...
- Slack 开源替代品 Rocket.Chat(聊天,文件上传等等)
Rocket.Chat 是特性最丰富的 Slack 开源替代品之一. 主要功能:群组聊天,直接通信,私聊群,桌面通知,媒体嵌入,链接预览,文件上传,语音/视频 聊天,截图等等. Rocket.Chat ...
- 认识元数据和IL(上) <第三篇>
说在,开篇之前 很早就有说说Metadata(元数据)和IL(中间语言)的想法了,一直在这篇开始才算脚踏实地的对这两个阶级兄弟投去些细关怀,虽然来得没有<第一回:恩怨情仇:is和as>那么 ...
- 完全跨站点跨域名单点(SSO)同步登录和注销
先来说说什么是单点登录(SSO).来自百科的介绍:SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将这次主 ...