spring boot vue实现登录功能
时间: 2023-09-06 09:11:05 浏览: 47
要实现Spring Boot和Vue的登录功能,可以按照以下步骤进行操作:
1. 在Spring Boot中创建一个控制器(Controller),用于处理登录请求。
2. 创建一个用于存储用户信息的数据库表。
3. 在Vue中创建一个登录页面,包括用户名和密码输入框以及登录按钮。
4. 使用axios库将表单数据发送到Spring Boot后端。
5. 在Spring Boot中编写服务端验证逻辑,验证用户名和密码是否正确。
6. 如果验证通过,返回带有用户信息的JSON对象。
7. 在Vue中接收服务端返回的JSON对象,并根据用户信息跳转到相应的页面。
下面是一个简单的示例代码:
Spring Boot控制器代码:
```java
@RestController
@RequestMapping("/api")
public class LoginController {
@Autowired
private UserRepository userRepository;
@PostMapping("/login")
public ResponseEntity<User> login(@RequestParam String username, @RequestParam String password) {
User user = userRepository.findByUsername(username);
if (user != null && user.getPassword().equals(password)) {
return ResponseEntity.ok(user);
} else {
return ResponseEntity.status(HttpStatus.UNAUTHORIZED).build();
}
}
}
```
Vue登录页面代码:
```html
<template>
<div>
<input v-model="username" type="text" placeholder="用户名">
<input v-model="password" type="password" placeholder="密码">
<button @click="login">登录</button>
</div>
</template>
<script>
import axios from 'axios'
export default {
data() {
return {
username: '',
password: ''
}
},
methods: {
login() {
axios.post('/api/login', {
username: this.username,
password: this.password
}).then(response => {
if (response.status === 200) {
// 登录成功,跳转到主页
this.$router.push('/main')
} else {
alert('用户名或密码错误')
}
}).catch(error => {
alert('登录失败,请重试')
})
}
}
}
</script>
```
其中,UserRepository是一个Spring Data JPA的Repository,用于操作数据库表。在上面的代码中,使用findByUsername方法查找用户名对应的用户对象。如果找到了用户对象,并且用户输入的密码与数据库中存储的密码相同,就返回带有用户信息的JSON对象;否则,返回HTTP 401状态码表示认证失败。在Vue中,使用axios库发送POST请求,将表单数据包装成JSON对象,然后接收服务端返回的JSON对象。如果登录成功,就跳转到主页;否则,显示错误信息。