微信公众平台开发-微信授权登录(OAuth2.0)

电脑杂谈  发布时间:2020-07-05 21:26:21  来源:网络整理

网页版微信账号登陆_微信网页版怎么用账号登陆_微信电脑版怎么用账号登陆

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

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...