

3)微信网页版怎么用账号登陆,配置回调函数
当我们在微信客户端上访问第三方网页(即我们自己的网页)时,我们可以使用微信网页授权机制. 我们不仅需要早日获得appid和appsecret,而且还需要在授权用户时回叫. 域名设置,即授权用户的位置,页面将跳转到. 具体配置如下:
现在仍在页面上,有一个“获取基本用户信息的页面授权”,请稍后单击编辑

填写回叫域名:

如果您的网址未列入黑名单,它将显示在顶部


然后,域名配置成功!
注意:
1、这里填写的是域名(是一个字符串),而不是URL,因此请勿加http://等协议头;
2、授权回调域名配置规范为全域名,比如需要网页授权的域名为:www.qq.com,配置以后此域名下面的页面http://www.qq.com/music.html 、 http://www.qq.com/login.html 都可以进行OAuth2.0鉴权。但http://pay.qq.com 、 http://music.qq.com 、 http://qq.com无法进行OAuth2.0鉴权
至此,我们已经获得了必须使用的测试信息,包括
3. 微信授权登录并获取用户基本信息
微信授权使用OAuth2.0授权. 主要步骤如下:
第一步: 用户同意授权并获取代码
第二步: 交换代码以访问access_token
第3步: 刷新access_token(如有必要)
第四步: 提取用户信息(需要snsapi_userinfo范围)
详细步骤如下:
1. 用户关注微信公众号.
2. 微信公众号提供了用户请求授权页面的URL.
3. 用户单击授权页面的URL以向服务器发起请求
4. 服务器询问用户是否同意授权微信公众号(当范围为snsapi_base时,此步骤不可用)
5. 用户同意(当范围为snsapi_base时,此步骤不可用)
6. 服务器通过回调将CODE传递给微信公众账号
7. 微信公众号获取密码
8. 微信公众号通过CODE向服务器请求AccessToken
9. 服务器将AccessToken和OpenID返回到微信公众账号
10. 微信公众号通过AccessToken向服务器请求用户信息(作用域为snsapi_base时此步骤不可用)
11. 服务器将用户信息发送回微信公众号(作用域为snsapi_base时,此步骤不可用)

1),用户授权并获取代码
在域名的根目录(上面配置的回调域名)中,创建一个新文件并将其命名为oauth.php(名称是您想要的名称,并且可以相应地修改以下redirect_uri)该功能php也非常简单,只需将url上的code参数取出并打印出来微信网页版怎么用账号登陆,这对我们进行下一步操作很方便.
Oauth.php中的内容如下:
<?php if (isset($_GET['code'])){ echo $_GET['code']; }else{ echo "NO CODE"; } ?>
此php的主要目的是,当用户确认授权登录后,它将被转移到redirect_uri地址并带来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
是
公共帐户的唯一标识符(这是我们之前所申请的)
redirect_uri
是
授权后重定向的回调链接的地址(我们之前已应用)
response_type
是
返回类型,请填写代码
范围
是
应用程序授权范围,snsapi_base(不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo(弹出授权页面,可以通过openid获取昵称,性别,位置. 并且,即使在无关紧要的情况下,只要用户授权,也可以获取信息)
状态
否
状态参数将在重定向后带来. 开发人员可以填写a-zA-Z0-9的参数值,最多128个字节. 此值将按原样返回给微信. 我们可以进行比较以防止他人攻击.
#wechat_redirect
否
直接在微信上打开链接,您可以将该参数留空. 在进行第302页重定向时必须使用此参数
应用程序授权范围: 由于snsapi_base只能获取openid,因此并不重要,因此我们使用snsapi_userinfo.
回调地址: 填写刚刚上传的oauth.php的文件地址,
状态参数: 任意数字,请在此处填写123

特别注意: 由于授权操作的安全性高,当我们发起授权请求时,微信会定期对授权链接进行强匹配检查. 如果链接的参数顺序不正确,将无法正确访问授权页面
请求URL的构造如下:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx4a22b50d7e897f97&redirect_uri=http%3a%2f%2fad.seewo.com%2foauth.php&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect
这需要发送到微信才能使用微信浏览器打开.
单击上面的链接,单击“确认登录”以跳到您刚刚配置的回调页面,并获取微信返回的代码参数以进行以下操作.
授权页面如下:

授权后重定向的页面(我们之前配置的redirect_uri):

如果我们未在php中打印代码,则可以使用右上角按钮中的复制链接来获取链接,如下所示:
http://ad.seewo.com/oauth2.php?code=0217a07e9c194dbf5395c266b2dcfZ&state=123
代码说明:
code作为换取access_token的票据,每次用户授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。
1),将代码用于access_token
用于访问Web授权的access_token页面的构建方法:
; secret = SECRET&code = CODE&grant_type = authorization_code
参数说明
参数
你必须
说明
appid
是
唯一标识公共帐户
秘密
是
公共帐户的机密
代码
是
填写第一步中获得的代码参数
grant_type
是
填写授权码

代码: 在此处填写上一步获得的值.
构造的URL如下,只需打开网页中的链接即可:
https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx41cb8dbd827a16e9&secret=d4624c36b6795d1d99dcf0547af5443d&code=00137323023ab55775be09d6d8e75ffA&grant_type=authorization_code
只有在微信客户端上单击获取代码的链接. 您可以直接在网页上打开access_token和用户信息.
返回说明
正确时返回的JSON数据包如下:
{
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE"
}
参数
说明
access_token
网页授权界面调用凭据,请注意: 此access_token与基本的access_token支持不同
expires_in
Access_token接口调用凭证超时时间,单位(秒)
refresh_token
用户刷新access_token
openid
唯一的用户标识
范围
用户授权范围,以逗号(,)分隔
发生错误时,微信将返回以下JSON数据包(例如代码无效错误):
{"errcode":40029,"errmsg":"invalid code"}
2). 通过access_token和openid访问用户信息
请求方法:
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID
参数说明
参数
说明
access_token
网页授权界面调用凭据,请注意: 此access_token与基本的access_token支持不同
openid
用户的唯一标识符
URL的结构如下:
https://api.weixin.qq.com/sns/userinfo?access_token=OezXcEiiBSKSxW0eoylIeABONBTt9gBE6cK3arF_L6aOvwU4ynS5ZxG4r6ZUIJxh7y_ClmPRkYbMeOc_r30LAGB2IEAlCFsQQvfQMJSwHcU6109-6vz603Jho4oZhdns6AOXwoxaWcLujT1RWnC_hQ&openid=oF3PcsnsrMiJzEwalZZbAfWQpxCI
您可以直接在浏览器中执行此操作.
json格式的数据如下:
{
"openid":" OPENID",
" nickname": NICKNAME,
"sex":"1",
"province":"PROVINCE"
"city":"CITY",
"country":"COUNTRY",
"headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46",
"privilege":[
"PRIVILEGE1"
"PRIVILEGE2"
],
"unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
}
参数
说明
openid
用户的唯一标识符
昵称
用户昵称
性别
用户的性别,值为1是男性,值为2是女性,而值0是未知
省
省填写了用户
城市
城市填写了普通用户的
国家
国家,例如中国是CN
headimgurl
用户头像,最后一个值表示方形头像的大小(可用值分别为0、46、64、96、132,0表示640 * 640方形头像),当用户没有头像时此项为空用户更改头像后,原始头像URL将无效.
特权
用户权限信息,json数组,例如微信Woka用户(chinaunicom)
工会会员
仅当用户将公共账户绑定到微信开放平台账户后,该字段才会出现. 有关详细信息,请参阅: 获取用户个人信息(UnionID机制)
发生错误时,微信将返回如下JSON数据包(示例中openid无效):
{"errcode":40003,"errmsg":" invalid openid "}
值得注意的地方:
用户管理界面中的“获取用户基本信息界面”是在消息交互后或者与事件推送后,用户与官方账号进行交互后,基于用户的OpenID获取用户基本信息. 该界面(包括其他微信界面)要求用户(即openid)在成功调用公共帐户之前先注意其公共帐户.
获得基本用户信息的网页授权也遵循UnionID机制. 也就是说,如果开发者需要在多个公共账户之间,或者在公共账户和移动应用之间统一用户账户,则需要先访问微信开放平台(open.weixin.qq.com)绑定公共账户. 您可以使用UnionID机制来满足上述需求.
UnionID机制的作用描述: 如果开发人员具有多个移动应用程序,网站应用程序和公共帐户,则可以通过获取用户基本信息中的unionid来区分用户的唯一性,因为同一用户打开了平台到同一个微信在不同的应用程序(移动应用程序,网站应用程序和公共帐户)下,unionid相同.
特别注意: 由于公共帐户的机密和获得的access_token的安全级别很高,因此必须仅将其存储在服务器上,并且不允许将其传递给客户端. 随后还必须从服务器启动诸如刷新access_token和通过access_token获取用户信息之类的后续步骤.
扫描微信网页以登录:
微信公众号群组消息:
谢谢: 感谢您的阅读!
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-269779-1.html
所以不要以为自己的舰队数量多就牛逼
所以胜之不武
让有智慧