【发布时间】:2021-07-06 00:14:54
【问题描述】:
我想在 laravel 8 中手动登录一个用户。问题是认证成功,但是认证的用户没有存储在会话中(或者会话没有更新)。我使用de docs中给出的方法。
我的 loginController 有两种方法:1)显示登录表单和 2)执行登录
<?php
namespace App\Http\Controllers;
use App\Http\Requests\LoginRequest;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
class LoginController extends Controller
{
public function login(){
return view('auth/login');
}
public function validateLogin(LoginRequest $request){
if (Auth::attempt(['email'=>$request->email, 'password'=>$request->password])) {
$request->session()->regenerate();
return redirect()->to('/');
}
return back()->withErrors(['credentials' => 'Deze gegevens zijn niet bekend!']);
}
}
控制器确实重定向到 / ,因此用户通过了身份验证,但在重定向后,经过身份验证的用户不可用,因此它没有存储在会话中。
有人知道怎么解决吗?
【问题讨论】:
-
你为什么不使用这个特性呢?
Illuminate\Foundation\Auth\AuthenticatesUsers -
我正在使用this,首先我检查电子邮件和密码,然后使用用户 ID
Auth::loginUsingId($id);验证用户 -
@BABAKASHRAFI 如果没有脚手架身份验证系统,该特征在 laravel 8 中不可用,
-
@KvdLingen,你为什么不使用
laravel ui包安装它的脚手架? -
@EsTeAa 尝试在 auth::attempt 后登录用户,但这也没有解决我的问题。脚手架一定有一些文档中没有的东西。
标签: laravel authentication laravel-8