在Laravel和Vue.js中保存登录用户的令牌,可以使用以下步骤和代码示例:
config/auth.php 文件,确保 api 驱动程序的驱动程序设置为 token,如下所示:'guards' => [
'api' => [
'driver' => 'token',
'provider' => 'users',
],
],
routes/api.php 文件中,创建用于登录并返回令牌的路由。示例代码如下所示:Route::post('login', 'AuthController@login');
AuthController 并实现登录方法,将令牌返回给前端。示例代码如下所示:use Illuminate\Support\Facades\Auth;
public function login(Request $request)
{
$credentials = $request->only('email', 'password');
if (Auth::attempt($credentials)) {
$user = Auth::user();
$token = $user->createToken('MyApp')->accessToken;
return response()->json(['token' => $token], 200);
} else {
return response()->json(['error' => 'Unauthorized'], 401);
}
}
axios 库来发送登录请求并保存令牌。示例代码如下所示:import axios from 'axios';
export default {
data() {
return {
email: '',
password: '',
token: '',
error: ''
};
},
methods: {
login() {
axios.post('/api/login', {
email: this.email,
password: this.password
})
.then(response => {
this.token = response.data.token;
// 将令牌保存到本地存储中,以便在后续的请求中使用
localStorage.setItem('token', this.token);
})
.catch(error => {
this.error = error.response.data.error;
});
}
}
}
import axios from 'axios';
export default {
methods: {
fetchData() {
const token = localStorage.getItem('token');
axios.get('/api/data', {
headers: {
'Authorization': 'Bearer ' + token
}
})
.then(response => {
// 处理返回的数据
})
.catch(error => {
// 处理错误
});
}
}
}
通过以上步骤和代码示例,您可以在Laravel和Vue.js中成功保存登录用户的令牌。请注意,这只是一个基本示例,您可能需要根据您的具体需求进行修改和调整。