【发布时间】:2020-09-01 17:42:49
【问题描述】:
TL;DR:在成功登录并重定向到/home后,我被Controller的中间件($this->middleware('auth');)踢回/login。
我有一个php-apache docker 开发环境。最后,我能够将 Laravel 7 用于新服务,因此我设置了它,获取了框架并开始使用它。我不能使用 Laravel 的散列算法,因为我有一个自定义方法,我知道可以与 Auth::attempt() 方法一起使用 manual authentication。
都设置这个点
public function login(Request $r)
{
$data = $r->validate([
'username' => 'required|string',
'_pswrd' => 'required|string',
]);
$credentials = [
'login' => $data['username'],
'password' => $data['_pswrd'],
'status' => 'A',
];
try {
if (Auth::guard()->attempt($credentials, $r->has('remember'))) {
// Auth::user() is found and valid so redirect...
return $r->wantsJson()
? new Response('', 204)
: redirect()->intended('/');
}
return back()->with('errors', new MessageBag([ 'auth.failed' ]));
} catch (Exception $e) {
Log::warning($e);
return back()->with('errors', new MessageBag([ 'auth.unknown' ]));
}
}
但是,那我去home路线
class HomeController extends Controller
{
public function __construct()
{
// \Illuminate\Support\Facades\Auth::user() === null
$this->middleware('auth');
}
public function index()
{
return view('home');
}
}
- 为什么 HomeController 中的 Auth::user() 为空?
- 为什么我的会话丢失了?
- 我是否缺少 Apache 或 laravel 的
conf/文件夹中的某些配置?
【问题讨论】:
标签: php laravel session-cookies laravel-7 php-7.4