返回
若依前后端分离版ruoyi-vue:小程序和APP获取token指南
前端
2022-11-15 20:51:00
在 Ruoyi-Vue 中使用手机号和验证码登录
引言
随着数字时代的到来,小程序和 APP 已成为我们生活中不可或缺的一部分。为了增强用户体验,企业和组织纷纷采用 Ruoyi-Vue 后端分离框架构建应用程序。本文将深入探讨如何在 Ruoyi-Vue 中添加新的手机号和验证码登录接口,帮助小程序和 APP 获取令牌并利用 Ruoyi 的认证机制。
步骤
1. 添加用户表实体类
首先,我们创建一个新的用户表实体类,并为其定义 getter 和 setter 方法。这些方法对于从 Redis 中检索完整用户信息至关重要。
public class User {
private String id;
private String username;
private String password;
private String phone;
private String email;
// Getter 和 Setter 方法
}
2. 修改 SecurityConfig 类
接下来,我们修改 SecurityConfig 类,添加一个基于手机号和验证码的新登录接口。我们还需根据实际情况填写腾讯云短信验证码配置信息。
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/api/login/phone").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login.html")
.loginProcessingUrl("/api/login")
.permitAll()
.and()
.logout()
.logoutUrl("/logout")
.logoutSuccessUrl("/login.html")
.permitAll();
}
3. 修改 LoginController 类
最后,我们修改 LoginController 类,添加一个新方法来处理手机号和验证码登录请求。该方法使用腾讯云短信验证码服务验证手机号和验证码。
@PostMapping("/phone")
public R loginPhone(String phone, String code) {
if (StrUtil.isEmpty(phone) || StrUtil.isEmpty(code)) {
return R.error("手机号或验证码不能为空");
}
boolean verifyResult = verifyCode(phone, code);
if (!verifyResult) {
return R.error("验证码错误");
}
UserInfo user = getUserInfo(phone);
if (user == null) {
user = register(phone);
}
String token = createToken(user);
return R.ok("登录成功", token);
}
手机号和验证码登录的优势
- 便捷快速: 只需输入手机号和验证码即可登录,无需记忆密码。
- 安全可靠: 验证码机制防止了未经授权的访问,即使他人知道手机号也无法登录。
- 通用性强: 适用于各种设备和平台,包括手机、平板电脑和电脑。
应用场景
- 电商平台:快速下单购物
- 社交平台:即时与好友互动
- 游戏平台:便捷进入游戏体验
使用说明
- 输入手机号获取验证码。
- 输入验证码完成登录。
- 若手机号不存在,系统将自动注册。
常见问题解答
1. 为什么使用手机号和验证码登录?
便捷快速、安全可靠、通用性强。
2. 如何获取验证码?
在登录页面输入手机号后,点击“获取验证码”按钮。
3. 忘记了验证码怎么办?
点击“获取验证码”按钮重新获取。
4. 手机号不存在怎么办?
系统将自动注册。
5. 输入错误的验证码多次怎么办?
账号可能会被临时锁定。
结论
通过在 Ruoyi-Vue 中添加新的手机号和验证码登录接口,小程序和 APP 可以轻松获取令牌,享受更便捷、安全的验证体验。这将极大地提升用户体验,增强应用的安全性。