如何解决Laravel 8 网络路线守卫与 Laravel 护照
我有一个 laravel-vuejs 混合项目并应用了 laravel/passport
。
我的 web.PHP route
由 laravel's own session(Auth::user())
守护,而我的 api.PHP route
由 laravel 护照守护。
现在我想要的是在成功调用 newsFeed
api 后重定向到 login
路由。
我在 AuthController 中的 login
函数是:
$validator = Validator::make($request->all(),[
'email' => 'email|required','password' => 'required'
]);
if ($validator->fails()) {
return response()->json([
'status' => 0,'msg' => $validator->errors()->all(),//get error for all fields
'data' => [],'token' => ''
],200);
} else {
$loginData = [
'email' => $request->email,'password' => $request->password
];
if ( !auth()->attempt($loginData) ) {
return response()->json([
'status' => 0,'msg' => 'Invalid credentials.','data' => [],'token' => ''
],200);
} else {
$user = auth()->user();
$accesstoken = $user->createtoken($user->email.'-'.Now())->accesstoken;
return response()->json([
'status' => 1,'msg' => 'ok','data' => $user,'token' => $accesstoken
],200);
}
}
我的 web.PHP
路线是:
Route::middleware(['auth:web'])->group(function ($router) {
Route::get('/newsFeed',[NewsFeedController::class,'Feed'])->name('newsFeed');
...
...
});
在收到 login
api 函数后,在我调用 login
函数的 Vue 中,假设响应 status
返回 1,我调用了 window.location.href = '/newsFeed';
。
问题是,我无法继续执行 /newsFeed
路线,因为尚未进行 Laravel 会话,而且我在使用护照时不知道该怎么做。
我的问题是,如何通过某种身份验证保护我的 web.PHP routes
?是laravel自己的session还是passport session?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。