微信扫码登录的实现方式

1、注册微信开放平台账号 

注册地址:https://open.weixin.qq.com/ 进行注册,并且通过企业认证并获取到AppID和AppSecret

微信扫码登录的整体流程

1. 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数;
2. 通过code参数加上AppID和AppSecret等,通过API换取access_token;
3. 通过access_token进行接口调用,获取用户基本数据资源或帮助用户实现基本操作。

官方流程图

2、显示二维码的两种方式

方式一:打开一个新页面 地址如下   

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

参数说明

参数必填描述
appid应用唯一标识
redirect_url请使用urlEncode对链接进行处理
response_type填code
scope应用授权作用域,拥有多个作用域用逗号(,)分隔,网页应用目前仅填写snsapi_login即可
state用于保持请求和回调的状态,授权请求后原样带回给第三方。该参数可用于防止csrf攻击(跨站请求伪造攻击),建议第三方带上该参数,可设置为简单的随机数加session进行校验

方式二:当前页面嵌入二维码,引入对应的js文件 用于生成二维码

<script src="https://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script>
var obj = new WxLogin({
                              id:"显示二维码的容器id", 
                              appid: "申请到的appid", 
                              scope: "snsapi_login", 
                              redirect_uri: "这里是回调地址",
                              state: "",
                              style: "black",
                              href: ""
                            });

3、返回说明

用户扫码允许授权后,将会重定向到redirect_uri的网址上,并且带上code和state参数,

redirect_uri?code=CODE&state=STATE

然后需要要通过code获取access_token,请求的地址:https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

参数说明

参数是否必须说明
appid应用唯一标识,在微信开放平台提交应用审核通过后获得
secret应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
code填写第一步获取的code参数
grant_type填authorization_code

接口会返回access_token,最后通过access_token就可以获取到用户的信息
请求地址 https://open.wecard.qq.com/connect/oauth/get-user-info

这样其实就实现了扫码登陆的功能了 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值