2017-04-22 26 views
1

你好傢伙我想記住我的複選框,我想將用戶信息保存到cookie中,所以下次嘗試登錄時,他會在他們的字段中找到用戶名和密碼我嘗試使用:記得我的laravel5.2

$rememberMe = false; 

if(isset($req->remember_me)) { 
    $rememberMe = true; 
} 

if(Sentinel::authenticate($req->all(), $rememberMe)) { 
    $slug = Sentinel::getUser()->roles()->first()->slug(); 
} 

的餅乾設置,我看到它在Chrome設置,但如我所料

它不會做我使用laravel 5.2

+0

您是否嘗試將Cookie的值設置爲輸入**'value =「{{cookie('email')}}」'**? – linktoahref

回答

0

您可以使用cookie

cookie是從網站發送並在用戶瀏覽該網站時存儲在用戶的Web瀏覽器中的一小段數據。每個用戶加載網頁時,瀏覽器會將cookie發送回服務器,通知用戶的先前活動 的網站創建:

$response->withCookie(Cookie::make('name', 'value', $minutes)); 

要檢索

$value = Cookie::get('name'); 

你的問題不記住用戶登錄..問題是如何根據保存的認證信息填充輸入。如果您在加載頁面時在輸入值屬性中打印身份驗證值,則可以這樣做。

仔餅乾文檔

而且Laravel有它自己的實現的 「記住我」

if (Auth::attempt(array('email' => $email, 'password' => $password), true)) 
{ 
// The user is being remembered... 
} 

if (Auth::viaRemember()) 
{ 
// 
} 

更多有關https://laravel.com/docs/5.4/authentication#remembering-users

0

有兩個主要的事情需要照顧: 1)您必須將一個布爾值作爲第二個參數傳遞給該方法,請確保在將其傳遞給該方法之前進行轉換。 - 在你的代碼,它是完美的

$credentials = $req->only('LOGINNAME', 'PASSNAME') 
if(Sentinel::authenticate($credentials , $req->has('remember_me'))){ 
//Other stuff 
} 

2)你可以驗證它的工作原理是確保一個cookie設置與關鍵cartalyst_sentinel

所以先按照1)選項更改,然後檢查2)選項,可能是這是你的答案。