微信扫码登录流程与操作

关于项目中使用微信扫码登录,前端需要操作的内容相对简单,但是其中的流程个人感觉还有需要好好研究一下的。

微信开放平台

微信开放平台是进行以下步骤的前提,可以说不进入这个网页进行操作是不可能实现微信扫码登录的,这个是需要进行付费的,就直接略过了。

微信公众平台

要想使用扫码登录微信公众平台中有文档说明需要查看一下:

进入页面之后扫码登录:

我在项目中是在网站进行应用的,所以选择了网站应用一栏

具体流程

官网上给出的流程为:

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

下面我将会用自己的语言将这个过程进行描述:

第一步:请求code

前端页面请求地址  https://open.weixin.qq.com,此时如果用户没有进行扫码操作,此时微信会进行一个长轮询(每隔一段时间进行一次接口调用询问是否进行操作),用户一旦点击了确认微信就会返回一个二维码页面,前端是通过iframe嵌入到对应的页面对应的位置;

第二步:返回code

微信会将code返回给后端程序员,code是用户授权的唯一标识;

第三步:请求access_token

后端使用获取的code加上appId和secret向微信发送请求,微信收到之后会判断标识是否正确,会将access_token返回给后端

第四步:获取用户信息

后端使用请求地址加上access_token再次请求后端,后端会将用户信息返回给后端

第五步:前端获取用户信息

前端向后端发送请求,后端会将已经获取到的用户信息重定向到一个页面,通过query参数将用户信息注入给前端

前端代码实现

第一步:引入代码

以vue为例,在index.html中引入如下代码

  <script src="http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script>

第二步:引入实例

在页面要展示二维码的页面js中使用如下代码:

有些参数可以给默认值,有些需要后端的介入然后从后端返回的数据中进行回显

new WxLogin({
  self_redirect:true,
  id:"login_container", 
  appid: "", 
  scope: "", 
  redirect_uri: "",
  state: "",
  style: "",
  href: ""
 });

参数说明:

self_redirect:  true:手机点击确认之后可以在iframe中重定向到redirect_uri的页面,  false: 手机点击确认后在top window跳转到redirect_uri;

id:存放二维码的容器;

appid: 唯一的标识,提交审核通过之后可以获得;

scope: 应用权作用域,多个用逗号分隔,在微信开放平台中获得,网页应用中目前写默认值:snsapi_login;

redirect_uri:重定向的地址,需要进行UrlEncode编码;

state:重定向地址携带的用户信息;

style: 有‘black’和‘white’两种状态;

href:自定义的样式链接;

完成以后即可在页面对应的地方显示二维码。

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue微信扫码登录是一种基于Vue框架实现的登录方式。用户可以通过扫描二维码来完成登录操作。代码中的getWxLoginQrCodeUrl方法是用来请求后端接口获取微信登录二维码的URL地址,并将该地址赋值给wxCode变量。在页面上,使用iframe标签将获取到的二维码URL进行展示。同时,还可以看到一些自定义的样式。这个功能可以通过引用中的部分代码来实现。引用对Vue微信扫码登录做了详细的介绍,可以作为参考学习的资料。在实现该功能时,首先需要发送请求获取微信登录二维码的URL地址,然后将该地址通过iframe进行展示。具体的步骤可以参考引用中的描述。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [vue项目实现微信扫码登录流程梳理](https://blog.csdn.net/cczz66/article/details/125311010)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [vue 微信扫码登录(自定义样式)](https://download.csdn.net/download/weixin_38621104/12929503)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值