springboot、vue、mybatis为框架的登录功能逻辑
时间: 2023-12-27 11:03:11 浏览: 30
首先,登录功能需要前端页面输入用户名和密码,后端接收到用户名和密码后进行验证,如果验证通过则将用户信息存储到 session 中,表示当前用户已登录。
下面是一个简单的实现逻辑:
前端(Vue):
1. 创建一个登录页面,包含输入用户名和密码的表单;
2. 在表单中添加一个按钮,点击按钮触发登录请求;
3. 将输入的用户名和密码以 POST 请求发送到后端。
后端(Spring Boot + MyBatis):
1. 接收前端发送的用户名和密码;
2. 查询数据库中是否存在该用户,并且密码是否匹配;
3. 如果验证通过,则将用户信息存储到 session 中,并返回登录成功提示;
4. 如果验证失败,则返回登录失败提示。
下面是一个简单的代码实现:
前端(Vue):
```html
<template>
<div>
<form>
<label>用户名:</label>
<input type="text" v-model="username"><br>
<label>密码:</label>
<input type="password" v-model="password"><br>
<button type="button" @click="login">登录</button>
</form>
</div>
</template>
<script>
export default {
data() {
return {
username: '',
password: ''
}
},
methods: {
login() {
this.$axios.post('/login', {
username: this.username,
password: this.password
}).then(response => {
if (response.data.code === 0) {
alert('登录成功')
} else {
alert('登录失败')
}
}).catch(error => {
console.log(error)
})
}
}
}
</script>
```
后端(Spring Boot + MyBatis):
```java
@RestController
public class LoginController {
@Autowired
private UserService userService;
@PostMapping("/login")
public Result login(@RequestBody User user, HttpSession session) {
User loginUser = userService.login(user.getUsername(), user.getPassword());
if (loginUser != null) {
session.setAttribute("user", loginUser);
return new Result(0, "登录成功");
} else {
return new Result(-1, "登录失败");
}
}
}
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public User login(String username, String password) {
User user = userMapper.selectByUsername(username);
if (user != null && user.getPassword().equals(password)) {
return user;
} else {
return null;
}
}
}
@Mapper
public interface UserMapper {
User selectByUsername(String username);
}
```
以上是一个简单的登录功能实现逻辑,具体的实现方式还需要根据具体情况进行调整。