记录--vue3问题:如何实现微信扫码授权登录?

这篇具有很好参考价值的文章主要介绍了记录--vue3问题:如何实现微信扫码授权登录?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助

记录--vue3问题:如何实现微信扫码授权登录?

一、需求

微信扫码授权,如果允许授权,则登录成功,跳转到首页。

记录--vue3问题:如何实现微信扫码授权登录?

二、问题

1、微信扫码授权有几种实现方式?

2、说一下这几种实现方式的原理是什么?

3、vue中的微信扫码授权登录,与uniapp和原生小程序的微信授权登录,它们之间有共同点吗?

TWO

解决问题,答案速览

一、网页跳转式

前端只需调用后端微信登录的接口即可。生成微信二维码、传递code参数等操作都在后端处理。

记录--vue3问题:如何实现微信扫码授权登录?

二、网页内嵌式

1、在public/index.html的head标签中引入wxLogin.js。

2、在template中设置一个内嵌二维码容器,可以自定义容器的样式。

3、创建WxLogin对象,配置必要参数,并通过id关联内嵌二维码容器。其中,参数redirect_uri和appid最关键,redirect_uri配置的是扫码授权成功后的重定向页面地址,在重定向页面可以拿到最最最重要的code参数。

4、在重定向页面通过code参数请求后端微信登陆的接口,获取access_token并存到本地,登录成功跳转首页。此处根据业务自定义逻辑即可。

// 在public/index.html的head标签中引入
<script src="https://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js">
</script>

<!-- 内嵌二维码容器 -->
<div id="login_container"></div>
// 获取code
var obj = new WxLogin({      
    // 需要显示内嵌二维码的容器id 
    id: 'login_container',     
    // 应用ID     
    appid: '',    
    // 网页默认即可 
    scope: 'snsapi_login', 
    // 授权成功后回调的url  
    redirect_uri: encodeURIComponent(''),   
    // 可设置为简单的随机数加session用来校验   
    state: Math.ceil(Math.random() * 1000),    
    // 二维码的样式,提供"black"、"white"可选。   
    style: 'black',     
    // 自定义样式链接   
    href: ''   
})  }
// 通过code请求接口获取access_token
import { useRoute, useRouter } from 'vue-router'
const router = useRouter()
const route = useRoute

let code = route.query.code
let state = route.query.state
if (code) { 
    let codeForm = {   
        code: code,// 关键  
        state: state, 
    } 
// 调微信登录的后端接口 
LoginApi(codeForm).then(res => {  
    localStorage.setItem('access_token', res.data.token)   
    router.push('home') 
})}

记录--vue3问题:如何实现微信扫码授权登录?

THREE

问题解析,知识总结

一、微信扫码授权登录有几种实现方式?

微信扫码授权登录有两种实现方式:网页外链式、网页内嵌式。

1、网页外链式

在选择带第三方登录方式时,点击微信登录,然后会跳转到一个新的微信扫码页面。当用户扫码允许授权登录后,就会自动关闭扫码页面,然后跳转到首页。

此方式可以算是后端处理。

2、网页内嵌式

在选择带第三方登录方式时,点击微信登录,会在当前页面的某处弹出一个内嵌的二维码。当用户扫码允许授权登录后,就会直接跳转到首页。

此方式可以算是前端处理,但这种方式比较推荐,用户体验比较好。

二、说一下这几种实现方式的原理是什么?

1、网页外链式

步骤一:用户进入登录页,在登录页选择微信登陆,前端调用后端微信登录的接口,后端会生成微信二维码,将地址返回给前端,前端响应后会在新页面打开这个二维码地址。

步骤二:用户用微信扫码,当授权成功后,就会自动重定向到后端扫码回调的接口。可以自动重定向到指定接口,是因为在生成二维码时,回调地址填的是后端接口地址,此处区别于网页内嵌式。

步骤三:后端会在重定向扫码回调接口中获取到code参数,再通过code参数获取到access_token、openid,进而获取用户信息,最终返回重定向首页地址给前端,登录成功跳转到首页。其中,地址内携带着access_token、openid、用户信息等参数,前端会保存这些参数到本地存储中。

记录--vue3问题:如何实现微信扫码授权登录?

2、网页内嵌式

步骤一:用户进入登录页,在登录页选择微信登陆,然后就会在内嵌二维码容器中显示出二维码。

步骤二:用户用微信扫码,当授权成功后,就会自动重定向到中转页。其中,中转页可以是注册页,也可以是当前登录页。

步骤三:前端在中转页获取当前路由对象的query信息,并通过请求接口将query信息中的code参数传给后端。

步骤四:后端就会通过code参数获取到access_token、openid,进而获取用户信息,当前端拿到这些参数后就会登录成功,跳转到首页,并保存到本地存储中。

记录--vue3问题:如何实现微信扫码授权登录?

三、vue中的微信扫码授权登录,与uniapp和原生小程序的微信授权登陆,它们之间有共同点吗?

1、uniapp的微信授权登录,主要借助uni.getUserProfile和uni.login这两个API实现。getUserProfile作用是获取用户授权,login作用是获取code参数。

2、原生小程序的微信授权登录,主要借助wx.getUserProfile和wx.login这两个API实现。getUserProfile作用是获取用户授权,login作用是获取code参数。

3、uniapp和原生小程序的微信授权登陆的原理,和vue中的微信扫码授权登录基本一致,掌握其一即可。

本文转载于:

https://juejin.cn/post/7267090979538141239

如果对您有所帮助,欢迎您点个关注,我会定时更新技术文档,大家一起讨论学习,一起进步。

 记录--vue3问题:如何实现微信扫码授权登录?文章来源地址https://www.toymoban.com/news/detail-649168.html

到了这里,关于记录--vue3问题:如何实现微信扫码授权登录?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 个人博客网站实现微信扫码登录(新)

            在不久之前(两年前)我写了一篇同名的博客《个人博客网站实现微信扫码登录(附源码)》,当时只是做一个记录而已。但是没想到会收到很多“猿友”的私聊, “代码跑不起来”、“实现原理”、“测试网址访问不了” 等各种问题。我也都一一解答了。趁着这

    2024年02月08日
    浏览(59)
  • Java 实现微信扫码登录方法(提供前端及后端核心代码)

    思路 1、Vue前端页面获取一个公众号的二维码,不是普通二维号,是带有场景值的 2、java后端接收前端的请求,生成一个带时效性的二维码链接返回给前端 3、公众号平台配置服务器接口地址 4、接收到关注或扫码请求并相应处理 5、前端轮询状态,如果检查到验证通过进到下

    2024年02月19日
    浏览(46)
  • 前端实现 微信扫码登录网站 pc端(二维码嵌套页面) 超详细,包会

    本人申明:本案例使用到的appid和AppSecret都是无效的 appid:应用唯一标识,在微信开放平台提交应用审核通过后获得 AppSecret:在微信开放平台提交应用审核通过后获得 1.在根目录html文件引入,既index.html 2.通过js添加节点 注意事项: 如果二维码出来,但是跳转失败,一定要看

    2024年02月04日
    浏览(78)
  • 记录--Vue3问题:如何实现组件拖拽实时预览功能?

    实现一个CMS内容管理系统,在后台进行内容编辑,在官网更新展示内容。 关于后台的编辑功能,大致分为两部分: 组件拖拽预览 、 组件内容编辑实时预览 。 对于组件拖拽预览,用户可以在含有各种功能组件的列表中,选择需要的组件进行拖拽。将组件拖拽到预览画布中后

    2024年02月04日
    浏览(44)
  • 微信扫码登陆流程

    以下为几类型微信登录的功能说明(基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统): 序号 类型 授权域/接口 用户侧使用流程 接入流程 1 App 接入微信SDK,并调用snsapi_userinfo (1)在App内选择使用微信登录 (2)拉起微信客户端,打开用户授权页,完成登录授权 (1)注

    2024年02月09日
    浏览(50)
  • JAVA微信扫码登录

    本帖有两种微信扫码的方式。根据测试公众号进行测试,所以不用担心没有公众号。 因为涉及到微信回调,所以要走本地的话需要进行内网穿透,本贴不包含内网穿透教学,很简单,请自行百度。 测试号地址:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login 扫码登录后,进

    2024年02月16日
    浏览(56)
  • 微信扫码跳转微信小程序

    一:首先声明为什么需要这样做         项目中需要在后台管理页面进行扫码支付,其他人弄了微信小程序支付,所以就需要挑战小程序进行支付,在跳转的时候需要参数例如订单编号等 二:跳转小程序的方法有多种         接口调用凭证 | 微信开放文档          具体可

    2024年02月11日
    浏览(71)
  • 网站怎么接入微信扫码支付?

    参考资料:产品中心 - 微信支付商户平台 (qq.com) 付款码支付、JSAPI支付、小程序支付、 Native支付 、APP支付、刷脸支付 用户展示微信钱包内的“付款码”给商家,商家扫描后直接完成支付,适用于线下面对面收银的场景。 线下场所:商户展示一个支付二维码,用户使用微信扫

    2024年02月09日
    浏览(49)
  • 微信扫码进入小程序特定页面

    小程序配置 开发 - 开发管理 - 开发设置-普通链接二维码打开小程序 配置好的截图 如下:二维码规则建议是自己的域名 + /mini/ 功能页面 pages/index/index 是为了方便跳转其他页面 记得把校验文件发给后端 web 端处理 二维码格式为: 二维码规则/功能页/你想跳转的页面 小程序处

    2024年01月22日
    浏览(49)
  • 微信扫码跳转到微信小程序指定页面

    用户想通过在微信上扫描实验室二维码直接进入小程序申请加入实验室 1、首先我们需要在微信公众平台的开发管理——开发设置,找到(扫普通链接二维码打开小程序),点击添加,会出现下面的页面,配置好之后点击保存就行了 填写页配置点击保存之后要再发布 2、在微

    2024年02月16日
    浏览(141)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包