微信开发(二)微信网页授权

网页授权回调域名

要想实现微信公众号之用户授权,首先要去这里设置一下:

来自微信公众平台
这是我的回调域名(不要写http)在这里插入图片描述
网页授权的两种scope,文档里说有snsapi_base与snsapi_userinfo两种,而经过实测,好像并不是这样,这俩玩意好像都能获取用户信息。蛋两者应该还是有区别的,正常来说,用snsapi_base是静默授权,用户感知不到,而snsapi_userinfo是要用户点击确认授权的(我用的snsapi_userinfo)。

微信网页授权是通过OAuth2.0机制实现的

在这里插入图片描述
用户同意授权后公众号可以获取一个网页授权特有的接口调用凭证,也就是access_token,准确来说应该是“网页授权access_token”,与之前我写的微信开发之access_token不是一个东西(其他微信的接口,均需要调用获取access_token的接口,这是基础支持)

关于UnionID

如果有需求,可以通过UnionID实现在多个公众号下统一用户账号的操作。因为同一用户,对同一个微信开放平台下的不同应用(移动应用、网站应用和公众帐号),unionid是相同的,一句话,区分用户的唯一性

下面上干货

第一步:用户同意授权,获取code(其实就是引导用户打开这个页面)

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

若应用授权作用域是userinfo,在这里出来以一个授权页面。header()函数跳到url,跳转回调redirect_uri,此处自己写一个方法接受回调
redirect_uri : 授权后重定向的回调链接地址,也就是授权后跳回到哪个页面,规定用 urlencode 对链接进行处理

$redirect_uri='http://www.laravel.com/wechat/code';

code作为换取access_token的票据,每次用户授权带上的code将不一样,所以只能使用一次,5分钟未被使用自动过期。

第二步:通过code换取网页授权access_token

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

注意,换取的是网页授权的access_token.
由于公众号的secret和获取到的access_token安全级别都非常高,必须只保存在服务器,不允许传给客户端。后续刷新access_token、通过access_token获取用户信息等步骤,也必须从服务器发起。
这里与文档上说的不一样,snsapi_userinfo也可以获取网页授权access_tokenopenid

第三步:无需刷新,直接获取用户基本信息

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值