今天小編就爲大家分享一篇解決laravel5中auth用戶登錄其他頁面獲取不到登錄信息的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
首先創建user表,裏面有:id, name, password,remember_token等字段。
然後再Models添加表模型User.php
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract; use DB; class User extends Model implements AuthenticatableContract { protected $table = 'user'; protected $primarykey = 'id'; public $timestamps = false; protected $fillable = ['user_name', 'password', 'user_phone', 'user_email', 'user_role_id', 'user_avart', 'user_sex', 'user_age', 'user_birthday', 'last_login_ip', 'last_login_time', 'is_disabled', 'remember_token']; /** * Get the unique identifier for the user. * * @return mixed */ public function getAuthIdentifier(){ return $this->getKey(); } /** * Get the password for the user. * * @return string */ public function getAuthPassword(){ return $this->password; } /** * Get the token value for the "remember me" session. * * @return string */ public function getRememberToken() { return $this->{$this->getRememberTokenName()}; } /** * Set the token value for the "remember me" session. * * @param string $value * @return void */ public function setRememberToken($value) { $this->{$this->getRememberTokenName()} = $value; } /** * Get the column name for the "remember me" token. * * @return string */ public function getRememberTokenName() { return 'remember_token'; } }
然後需要在配置文件config/auth.php中修改如下配置:
'model' => App\Models\User::class, //指定模型 'table' => 'user', //指定用戶表(user是我數據中儲存用戶的表)
接着在登錄方法裏使用Auth::login() 方法登錄,如下:
public function store(Request $request) { if(empty($request->get('chkCode')) || trim($request->get('chkCode')) != trim(Session::get('admincaptcha'))){ $error->add('result','驗證碼不正確'); return back()->withErrors($error); } $adminUser = User::where('user_name',$request->get('user_name'))->where('user_role_id', '>', 0)->first(); if(empty($adminUser)){ $error->add('result','用戶無後臺權限'); return back()->withErrors($error); }else{ if (md5($request->get('user_pwd'))===$adminUser->password&&$adminUser->user_role_id){ Auth::login($adminUser); Session::put('admincaptcha', ""); return redirect()->route('admin.home'); }else{ $error->add('result','用戶名或密碼錯誤'); return back()->withErrors($error); } } }
然而雖然這個頁面可以獲取到登錄信息,然而其他頁面卻沒有,原來是因爲id和密碼我用的是user_id和user_pwd不是id和password,這兩個必須不能變,改了之後可以正常登錄。
以上這篇解決laravel5中auth用戶登錄其他頁面獲取不到登錄信息的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持神馬文庫。