【发布时间】:2020-08-21 13:48:48
【问题描述】:
我正在使用正在更改 UI 的客户端项目。所以它的 Auth::guard('web') 在客户端服务器中工作。但是当我尝试将该项目用于我的 wamp 服务器(localhost) 时,它无法正常工作。它不会返回登录用户数据,而是将数据返回到 LoginController。整个代码在客户端服务器(共享服务器)中工作。所以当它的控制器发生变化时,它不会返回数据。这是在我不再面临这个问题之前。我在谷歌搜索并做了很多改变来解决这个问题,但没有得到我的解决方案。我的 laravel 版本是 6.2。所以我来到了这里。请不要投反对票...
请帮忙。
auth.php
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
.....
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
route.php
Route::get('/','IndexController@index'); // here i am calling auth guard .
Route::get('',['as'=>'posts','uses'=>'IndexController@index']);
登录控制器.php
public function login(Request $request)
{
$this->validate($request, [
'login' => 'required',
'password' => 'required',
]);
$login_type = filter_var($request->input('login'), FILTER_VALIDATE_EMAIL )
? 'email'
: 'username';
$request->merge([
$login_type => $request->input('login')
]);
if (Auth::attempt($request->only($login_type, 'password'))) {
$request->session()->regenerate();
$previous_session = Auth::User()->session_id;
if ($previous_session) {
Session::getHandler()->destroy($previous_session);
}
Auth::user()->session_id = Session::getId();
Auth::user()->save();
$user = auth()->guard('web')->user();
$this->clearLoginAttempts($request);
return response()->json([
'status' => 'S',
'message' => 'Login Successfuly.'
], 201);
}
return response()->json([
'status' => 'F',
'message' => 'Unauthorized - Password Not matched.'
], 401);
}
索引控制器
# for Test login
if( Auth::guard('web')->user())
{
return Auth::guard('web')->user();
}
【问题讨论】:
-
我收到 CSRF 令牌 419 错误。所以我忽略了csrf令牌形式的VerifyCsrfToken
标签: php laravel authentication laravel-6.2