VPS参考测评推荐
专注分享VPS主机优惠信息
衡天云优惠活动
华纳云优惠活动
荫云优惠活动

通过网页授权获取用户信息的方法(什么是网页授权)

主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情!
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作

获取用户信息的步骤如下:

1第一步:用户同意授权并获得代码2第二步:用代码换取网页授权access_token3第三步:刷新access_token(如果需要)4第四步:拉取用户信息(范围要求为snsapi_userinfo)。

1获取代码

在保证微信公众号有权限授权范围(范围参数)的前提下(服务号获得高级接口后,默认在范围参数中有snsapi_base和snsapi_userinfo),引导关注者打开以下页面:

open.weixin.qq.com/connect/oauth2/authorize? APPID = APPID & REDIRECT _ uri = REDIRECT _ URI & response _ type = code & SCOPE = SCOPE & STATE = STATE #微信_redirect

如果提示“此链接不可访问”,请检查参数是否填写错误,以及您是否拥有与范围参数对应的授权范围权限。

特别注意:由于授权操作的安全级别较高,微信在发起授权请求时会定期对授权链接进行强检查。如果链接的参数顺序错误,将无法正常访问授权页面。

其中包括:

AppID -微信官方账号的唯一标识符REDIRECT_URI -跳转urlSCOPE -值为snsapi_base(不弹出授权页面直接跳转,只获取用户openid)或snsapi_userinfo(弹出授权页面,通过openid获取昵称、性别和位置)。而且,即使在不注意的情况下,只要用户授权,就可以获取信息。)状态-开发者可以自定义a-zA-Z0-9的参数值。

2网页授权访问令牌的交换代码

如果用户同意授权,页面将跳转到redirect_uri/?代码=代码&状态=状态。STATE是按原样传递的状态参数。

实施代码:

& ltcode class = & quothljs php & quot& gt$ code = I(& amp;#39;代码& amp#39;);if(empty($ code)){//todo非微信访问出口(&;#39;& lt/code & gt;& amp#39;);}else{ //授权后的操作}这里我们可以获取后续access_token的代码。

获取代码后,请求以下链接以获取access_token:

api.weixin.qq.com/sns/oauth2/access_token? APPID = APPID & SECRET = SECRET & CODE = CODE & grant _ type = authorization _ CODE

Appid -微信官方账号的唯一标识符secret - key code -上面返回的codegrant_type -值为authorization_code。

实施代码:

& ltcode class = & quothljs bash & quot& gt$ url = & amp#39;https://api.weixin.qq.com/cgi-bin/token?格兰特类型=客户证书。appid = & amp#39;。c(& amp;#39;微信。AppID & amp#39;) .& amp#39;& amp秘密= & amp#39;。c(& amp;#39;微信。AppSecret & amp#39;);$ str = file _ get _ contents($ URL);$ str = JSON _ decode($ str,true);$ access _ token = $ str【& amp;#39;访问令牌& amp#39;];& lt/code & gt;这里可以缓存access_token以避免频繁获取实现代码。以TP框架为例:

& ltcode class = & quothljs php & quot& gt$ access _ token = S(& amp;#39;访问令牌& amp#39;);if(empty($ access _ token)){ $ URL = & amp;#39;https://api.weixin.qq.com/cgi-bin/token?格兰特类型=客户证书。appid = & amp#39;。c(& amp;#39;微信。AppID & amp#39;) .& amp#39;& amp秘密= & amp#39;。c(& amp;#39;微信。AppSecret & amp#39;);$ str = file _ get _ contents($ URL);$ str = JSON _ decode($ str,true);$ access _ token = $ str【& amp;#39;访问令牌& amp#39;];s (& amp;#39;访问令牌& amp#39;,$access_token,3600);} & lt/code & gt;获取access_token后,还将返回openid(用户唯一id)。官方微信文档解释:用户唯一ID。请注意,当用户在未关注微信官方账号的情况下访问微信官方账号的网页时,还将为用户和微信官方账号生成唯一的OpenID。

Openid唯一标识微信用户。如果用户不是第一次登录,他们可以在获取openid后查询数据库中是否有与该openid绑定的用户,然后他们无需重新获取用户数据。直接获取的数据库user_id设置为session并直接登录访问。

3第三步是忽略它,仅在必要时再次获取access_token。

4提取用户信息(snsapi_userinfo对于范围是必需的)

如果数据库没有被这个微信号用户绑定,相当于用户第一次访问登录,那么通过第四步获取用户信息(在用户授权的情况下,网页授权的范围是snsapi_userinfo,所以此时开发者可以通过access_token和openid拉取用户信息),然后在后台创建用户并绑定到这个微信号。

信任用户(通过openid)

请求方法

Http:GET(请使用https协议)api.weixin.qq.com/sns/userinfo?.访问令牌=访问令牌&openid=OPENID&lang=zh_CN

access _ token -access _ token OpenID -上面获取的微信官方账号唯一标识符。

实施代码:

& ltcode class = & quothljs php & quot& gt$ access _ token = S(& amp;#39;访问令牌& amp#39;);if(empty($ access _ token)){ $ URL = & amp;#39;https://api.weixin.qq.com/cgi-bin/token?格兰特类型=客户证书。appid = & amp#39;。c(& amp;#39;微信。AppID & amp#39;) .& amp#39;& amp秘密= & amp#39;。c(& amp;#39;微信。AppSecret & amp#39;);$ str = file _ get _ contents($ URL);$ str = JSON _ decode($ str,true);$ access _ token = $ str【& amp;#39;访问令牌& amp#39;];s (& amp;#39;访问令牌& amp#39;,$access_token,3600);} & lt/code & gt;以上是微信微信官方账号获取用户信息的具体步骤。

【相关建议】

1.下载微信微信官方账号平台源代码。

2.微智创T+微信机器人源代码

这几篇文章你可能也喜欢:

  • 暂无相关推荐文章

本文由主机参考刊发,转载请注明:通过网页授权获取用户信息的方法(什么是网页授权) https://zhujicankao.com/115351.html

【腾讯云】领8888元采购礼包,抢爆款云服务器 每月 9元起,个人开发者加享折上折!
打赏
转载请注明原文链接:主机参考 » 通过网页授权获取用户信息的方法(什么是网页授权)
主机参考仅做资料收集,不对商家任何信息及交易做信用担保,购买前请注意风险,有交易纠纷请自行解决!请查阅:特别声明

评论 抢沙发

评论前必须登录!