手机登录-前端代码

sendCode(mobile) {

return request({

url: ${api_name}/send/${mobile},

method: get

})

}

}

3、安装cookie

=========================================================================

登录成功,我们要把用户信息记录在cookie里面

命令行执行:

npm install js-cookie

4、 添加登录组件

========================================================================

登录层是一个公共层,因此我们把它放在头部组件里面

修改layouts/myheader.vue文件

在这里插入图片描述

<el-dialog :visible.sync=“dialogUserFormVisible” style=“text-align: left;” top=“50px” :append-to-body=“true” width=“960px” @close=“closeDialog()”>

{{ dialogAtrr.labelTips }}

{{ dialogAtrr.second }}s

<span slot=“suffix” class=“sendText v-link highlight clickable selected” v-if=“dialogAtrr.second == 0” @click=“getCodeFun()”>重新发送

class=“iconfont icon”>

第三方账号登录

class=“iconfont icon”>

手机短信验证码登录

微信扫一扫关注
“快速预约挂号”

src=“//img.114yygh.com/static/web/code_app.png”

class=“code-img”>

扫一扫下载
“预约挂号”APP
xxxxxx官方指定平台
快速挂号 安全放心

说明:登录成功用户信息记录cookie

5、头部显示登录状态

=========================================================================

在这里插入图片描述

5.1、获取登录信息


created() {

this.showInfo()

},

showInfo() {

let token = cookie.get(‘token’)

if (token) {

this.name = cookie.get(‘name’)

}

},

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-A22C9mSy-1715252089101)]

[外链图片转存中…(img-KtnV06bL-1715252089101)]

[外链图片转存中…(img-rkGzgxKZ-1715252089102)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
A: 1. 数据库表结构: 创建用户表 ``` CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户id 主键', `username` varchar(50) NOT NULL COMMENT '用户名', `password` varchar(50) NOT NULL COMMENT '密码', `email` varchar(50) DEFAULT NULL COMMENT '邮箱', `phone` varchar(15) DEFAULT NULL COMMENT '手机号', `create_time` datetime NOT NULL COMMENT '注册时间', `update_time` datetime NOT NULL COMMENT '更新时间', PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表'; ``` 2. 后端代码: 使用Spring Boot,可以通过Spring Security实现用户的登录和注册,示例代码如下: > UserController.java ```java @RestController @RequestMapping("/api") public class UserController { @Autowired private UserService userService; @PostMapping("/register") public Result register(@RequestBody User user) { boolean result = userService.addUser(user); if (result) { return Result.success("注册成功!"); } else { return Result.fail("注册失败!"); } } @PostMapping("/login") public Result login(@RequestBody User user) { String token = userService.login(user.getUsername(), user.getPassword()); if (token == null) { return Result.fail("登录失败,用户名或密码错误!"); } else { return Result.success(token); } } } ``` > UserService.java ```java @Service public class UserService implements UserDetailsService { @Autowired private UserRepository userRepository; @Autowired private JwtTokenUtil jwtTokenUtil; @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { User user = userRepository.findUserByUsername(username); if (user != null) { return new org.springframework.security.core.userdetails.User(user.getUsername(), user.getPassword(), new ArrayList<>()); } else { throw new UsernameNotFoundException("用户不存在!"); } } public boolean addUser(User user) { if (userRepository.findUserByUsername(user.getUsername()) != null) { return false; } user.setCreateTime(new Date()); user.setUpdateTime(new Date()); userRepository.save(user); return true; } public String login(String username, String password) { try { UserDetails userDetails = loadUserByUsername(username); if (userDetails != null && new BCryptPasswordEncoder().matches(password, userDetails.getPassword())) { return jwtTokenUtil.generateToken(userDetails); } } catch (Exception e) { } return null; } } ``` 3. 前端代码: 可以使用Vue.js实现,示例代码如下: > Login.vue ```vue <template> <div> <h2>用户登录</h2> <div> <label>用户名:</label> <input v-model="user.username" type="text" /> </div> <div> <label>密码:</label> <input v-model="user.password" type="password" /> </div> <div> <button @click="login">登录</button> </div> </div> </template> <script> import axios from "axios"; export default { name: "Login", data() { return { user: { username: "", password: "" } }; }, methods: { login() { axios.post("/api/login", this.user).then(response => { let token = response.data.data; localStorage.setItem("token", token); this.$router.replace("/index"); }).catch(error => { alert(error.response.data.message); }) } } }; </script> ``` > Register.vue ```vue <template> <div> <h2>用户注册</h2> <div> <label>用户名:</label> <input v-model="user.username" type="text" /> </div> <div> <label>密码:</label> <input v-model="user.password" type="password" /> </div> <div> <label>邮箱:</label> <input v-model="user.email" type="text" /> </div> <div> <button @click="register">注册</button> </div> </div> </template> <script> import axios from "axios"; export default { name: "Register", data() { return { user: { username: "", password: "", email: "" } }; }, methods: { register() { axios.post("/api/register", this.user).then(response => { alert(response.data.message); this.$router.push("/login"); }).catch(error => { alert(error.response.data.message); }) } } }; </script> ``` 完整示例代码可参考: https://github.com/JeffLi1993/springboot-learning-example/tree/master/springboot-security-jwt-authentication-example-with-kotlin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值