Ruoyi-vue前后端不分离集成微信小程序授权登录思路

简介: Ruoyi-vue前后端不分离集成微信小程序授权登录思路

背景

公司需要开发一个小程序,后台使用的是ruoyi-vue框架,前端使用uiapp开发。小程序登录采用手机号验证码登录。

思路

1、重新改写登录逻辑

ruoyi-vue采用的是spring security权限框架,默认使用用户名和密码进行登录,所以如果要改成手机号验证码登录,则需要重写改造权限框架

2、创建表用来绑定微信用户唯一标识openId和手机号

新建一张表,主要放用户的openId和userId,用来绑定用户信息

流程

1、登陆,未授权

用户输入手机号,发送验证码进行登录,后台根据手机号去数据库中查询,判断手机号是否绑定openId,如果没有,则页面弹窗 允许授权的提示。

后台在返回token的同时,也会返回一个没有绑定openId的标志,用于给前台判断是否要弹出授权页面。

注意:调用发送验证码接口时,后台先判断,该手机号是否在系统表中,如果不在,则直接返回手机号不在平台内,防止填错或恶意填写

2、登陆,已授权

用户进入小程序登录界面,输入手机号进行登录,后台根据手机号去数据库中查询,判断手机号是否绑定openId,如果已绑定,则页面不再弹窗 允许授权的提示。

后台返回token,以及已经绑定了openId的标志

3、授权操作,绑定手机号和openId(前台传参 code 和 手机号)

前台点击允许授权,前台传入code和手机号到后台,

后台根据code,调用微信官方接口,获得openId,然后将openId与手机号绑定入库,最后则授权成功

如果用户不点击 允许授权, 那么下一次再来登录的时候,继续提示他,因为手机号和openId没有绑定。

4、微信一键登陆

用户可以选择手机号验证码进行登录,也可以使用一键登录。

点击一键登录,前台传递code到后台,后台根据code,调用微信接口,获得openId,

后台根据openId,查询数据库,如果未查询到数据,

方案一:则直接提示该手机号非平台用户

方案二:调用微信接口,获取用户绑定微信的手机号,然后用手机号去数据库查询,如果查询不到,则说明非平台用户,

如果可以查到,则使用手机号进行登录,登录成功返回token给前端,并且将openId存入数据库。

如果可以查询到,则说明用户之前登陆过平台并进行了授权,接下来通过查询到的手机号,在平台直接进行登录,

登录成功,返回token和已绑定了openId的标志给前台。


相关文章
|
12月前
|
供应链 小程序 API
微信小程序API集成京东库存,移动端销量暴涨!
在数字化时代,微信小程序与京东库存系统集成成为提升移动端销量的关键策略。本文详解如何通过API实现库存实时同步、优化用户体验,推动销量增长50%以上,并结合实际案例与代码示例,为企业提供可落地的解决方案。
|
存储 小程序 前端开发
微信小程序与Java后端实现微信授权登录功能
微信小程序极大地简化了登录注册流程。对于用户而言,仅仅需要点击授权按钮,便能够完成登录操作,无需经历繁琐的注册步骤以及输入账号密码等一系列复杂操作,这种便捷的登录方式极大地提升了用户的使用体验
4024 12
|
小程序 前端开发 算法
|
小程序 算法 前端开发
微信小程序---授权登录
微信小程序---授权登录
468 0
|
JavaScript Linux API
【Azure 应用服务】NodeJS Express + MSAL 应用实现AAD集成登录并部署在App Service Linux环境中的实现步骤
【Azure 应用服务】NodeJS Express + MSAL 应用实现AAD集成登录并部署在App Service Linux环境中的实现步骤
422 0
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
4601 7
|
小程序 前端开发 测试技术
微信小程序的开发完整流程是什么?
微信小程序的开发完整流程是什么?
2614 7
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
5133 1
|
人工智能 自然语言处理 小程序
技术小白如何利用DeepSeek半小时开发微信小程序?
通过通义灵码的“AI程序员”功能,即使没有编程基础也能轻松创建小程序或网页。借助DeepSeek V3和R1满血版模型,用户只需用自然语言描述需求,就能自动生成代码并优化程序。例如,一个文科生仅通过描述需求就成功开发了一款记录日常活动的微信小程序。此外,通义灵码还提供智能问答模式,帮助用户解决开发中的各种问题,极大简化了开发流程,让普通人的开发体验更加顺畅。
4111 11
技术小白如何利用DeepSeek半小时开发微信小程序?

热门文章

最新文章