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的标志给前台。


相关文章
|
弹性计算 机器人 应用服务中间件
一键部署开源Qwen3并集成到钉钉、企业微信
Qwen3系列模型现已正式发布并开源,包含8款“混合推理模型”,其中涵盖两款MoE模型(Qwen3-235B-A22B与Qwen3-30B-A3B)及六个Dense模型。阿里云计算巢已支持Qwen3-235B-A22B和Qwen3-32B的私有化部署,用户可通过计算巢轻松完成部署,并借助AppFlow集成至钉钉机器人或企业微信。文档详细介绍了从模型部署、创建应用到配置机器人的全流程,帮助用户快速实现智能助手的接入与使用。
1401 19
一键部署开源Qwen3并集成到钉钉、企业微信
|
人工智能 安全 机器人
LangBot:无缝集成到QQ、微信等消息平台的AI聊天机器人平台
LangBot 是一个开源的多模态即时聊天机器人平台,支持多种即时通信平台和大语言模型,具备多模态交互、插件扩展和Web管理面板等功能。
3402 14
LangBot:无缝集成到QQ、微信等消息平台的AI聊天机器人平台
|
弹性计算 人工智能 应用服务中间件
一键部署开源DeepSeek并集成到企业微信
DeepSeek近期发布了两款先进AI模型V3和R1,分别适用于通用应用和推理任务。由于官方API流量过大,建议通过阿里云的计算巢进行私有化部署,以确保稳定使用。用户无需编写代码即可完成部署,并可通过AppFlow轻松集成到钉钉、企业微信等渠道。具体步骤包括选择适合的机器资源、配置安全组、创建企业微信应用及连接流,最后完成API接收消息配置和测试应用。整个过程简单快捷,帮助用户快速搭建专属AI服务。
2743 7
一键部署开源DeepSeek并集成到企业微信
|
弹性计算 应用服务中间件 API
AppFlow:无代码部署Dify并集成到企业微信
本文介绍如何通过计算巢AppFlow完成Dify的无代码部署,并将Dify应用集成到企业微信中使用。具体步骤包括:创建企业微信应用,获取AgentID和Secret;使用计算巢AppFlow模板创建连接流,配置Dify和企业微信的鉴权凭证;配置企业微信API接收消息和可信IP;最后测试应用确保正常运行。文中还提供了常见问题的解决方案,如域名主体校验未通过和配置企业可信IP报错等。
4814 11
AppFlow:无代码部署Dify并集成到企业微信
|
存储 小程序 前端开发
微信小程序与Java后端实现微信授权登录功能
微信小程序极大地简化了登录注册流程。对于用户而言,仅仅需要点击授权按钮,便能够完成登录操作,无需经历繁琐的注册步骤以及输入账号密码等一系列复杂操作,这种便捷的登录方式极大地提升了用户的使用体验
4015 12
|
小程序 前端开发 算法
|
移动开发 前端开发 Android开发
开发指南059-App实现微信扫描登录
App是用uniapp开发的,打包为apk,上传到安卓平板中使用
|
小程序 算法 前端开发
微信小程序---授权登录
微信小程序---授权登录
462 0
|
JavaScript Linux API
【Azure 应用服务】NodeJS Express + MSAL 应用实现AAD集成登录并部署在App Service Linux环境中的实现步骤
【Azure 应用服务】NodeJS Express + MSAL 应用实现AAD集成登录并部署在App Service Linux环境中的实现步骤
416 0