本文已参与[新人创作礼]活动,一起开启掘金创作之路。
网站使用微信扫码登录流程
1:客户端浏览器访问登陆页面
2-4: 浏览器重定向到二维码获取页面,获取微信登录二维码(获取二维码 的时候携带APPID和secretKey和登录成功后跳转回的地址,即redirect_url)
5: 手机扫入二维码信息到手机端
6: 手机端把二维码信息和微信的token传送给微信后台
7: 验证成功之后返回给浏览器授权码code和授权成功状态。
8: 浏览器页面重定向到上边指定的redirect_url并携带授权码code给第三方网站后端。
9: 网站将授权码和appid和secretKey发给微信后台。
10: 微信后台返回access_token给第三方网站,第三方网站获取到useid信息存储后台。
以上内容参考微信开发文档,详情参考以下官方链接
developers.weixin.qq.com/doc/oplatfo…
OAuth2.0
微信OAuth2.0授权登录让微信用户使用微信身份安全登录第三方应用或网站,在微信用户授权登录已接入微信OAuth2.0的第三方应用后,第三方可以获取到用户的接口调用凭证(access_token),通过access_token可以进行微信开放平台授权关系接口调用,从而可实现获取微信用户基本开放信息和帮助用户实现基础开放功能等。 微信OAuth2.0授权登录目前支持authorization_code模式,适用于拥有 server 端的应用授权。
官方给出的文档的三个重要字段的解释如下
- 什么是授权临时票据(code)? 答:第三方通过 code 进行获取access_token的时候需要用到,code的超时时间为10分钟,一个 code 只能成功换取一次access_token即失效。code的临时性和一次保障了微信授权登录的安全性。第三方可通过使用 https 和state参数,进一步加强自身授权登录的安全性。
- 什么是授权作用域(scope)? 答:授权作用域(scope)代表用户授权给第三方的接口权限,第三方应用需要向微信开放平台申请使用相应 scope 的权限后,使用文档所述方式让用户进行授权,经过用户授权,获取到相应access_token后方可对接口进行调用。
- 网站内嵌二维码微信登录 JS 代码中 style 字段作用? 答:第三方页面颜色风格可能为浅色调或者深色调,若第三方页面为浅色背景,style字段应提供"black"值(或者不提供,black为默认值),则对应的微信登录文字样式为黑色。相关效果如下: