[英]Laravel loginUsingId doesn't seem to work
我需要通過Auth手動登錄Laravel 5.7中的用戶。 一旦我運行Auth :: loginUsingId($ userId,true),我就會將用戶重新定位到他的帳戶頁面。
這一點是通過令牌的用戶可以登錄到網站,而無需再次添加他的憑據。
我嘗試過任何我能在網上找到的東西,包括將Session從MiddlewareGroup轉移到Middleware,檢查Cookie名稱以及其他一些不起作用的東西。
我的控制器看起來像這樣:
public function loginExternal(Request $request) {
$userId = $request->uid;
Auth::loginUsingId($userId, true);
redirect()->to('/account')->send();
}
它的路線非常簡單:
Route::get('/oneclick/{token}', 'Auth\AccountController@loginExternal')->middleware('signed')->name('oneclick');
我希望用戶能夠自動登錄並進入他的帳戶。 現在它只是將我發送到登錄頁面。
我注意到loginUsingId()方法僅在此控制器中生成新的會話ID,但在網站的其他頁面中,網站使用的是相同的會話(應該發生)。
我需要提一下,用戶確實登錄了LoginExternal方法。 它只是不會持久到帳戶頁面。
有任何想法嗎?
在控制器中:
public function loginExternal($id) {
$user = User::find($id);
if($user){
\Auth::loginUsingId($id, true);
return redirect('/account');
} else {
return redirect('/')->with('error_message', 'No user found!');
}
}
在路由文件(web.php)中
Route::get('/oneclick/{id}', 'Auth\AccountController@loginExternal')->name('oneclick');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.