vue前端是通过什么属性和springboot后端接口再到数据库查询数据的。请写一个示范案例:前端是用户名和密码 后端写一个校验用户名和密码的接口。让它们实现联调
时间: 2024-10-08 16:00:42 浏览: 41
在Vue前端与SpringBoot后端进行数据交互时,通常采用JSON Web Token (JWT) 或 RESTful API 来进行身份验证和数据请求。前端主要使用axios库来进行HTTP请求。这里是一个简单的示例:
1. **前端 Vue.js 部分**:
```html
<template>
<div>
<input v-model="username" placeholder="请输入用户名">
<input type="password" v-model="password" placeholder="请输入密码">
<button @click="login">登录</button>
</div>
</template>
<script>
import axios from 'axios';
export default {
data() {
return {
username: '',
password: ''
};
},
methods: {
login() {
const { username, password } = this;
axios.post('/api/login', { username, password })
.then(response => {
// 登录成功后处理 JWT 或返回的数据
console.log('Login successful:', response.data);
})
.catch(error => {
console.error('Error:', error);
});
}
}
};
</script>
```
在这个例子中,`/api/login` 是你的SpringBoot后端提供的API路径。
2. **后端 SpringBoot 部分** (假设有一个UserRepository和UserService):
```java
@RestController
public class LoginController {
@Autowired
private UserService userService;
@PostMapping("/api/login")
public ResponseEntity<?> authenticate(@RequestBody UserCredentials credentials) {
User user = userService.authenticate(credentials.getUsername(), credentials.getPassword());
if (user != null) {
// 返回JWT或其他认证信息
return new ResponseEntity<>(accessToken, HttpStatus.OK);
} else {
return new ResponseEntity<>(HttpStatus.UNAUTHORIZED);
}
}
// 省略了数据库查询部分,因为这里是示例,实际可能需要验证后查询数据库
}
```
后端会根据输入的用户名和密码去UserService中做校验,如果用户存在则返回认证信息,否则返回401未授权状态码。
阅读全文