Auth :: check()在Auth:attempt()成功後失敗。我只是遵循laracast.com教程進行簡單認證。這個具體教程https://laracasts.com/series/laravel-from-scratch/episodes/15。所以要麼在4到5版本之間做一個小小的改動,要麼就是在做一些錯誤的改動。laravel Auth :: check()失敗
這是一個驗證功能,第二個驗證功能。他們兩人都在同一班。
public function store()
{
$credentials = Input::only('user_displayname');
$credentials['password'] = Input::get('user_password');
if (Auth::attempt($credentials))
{
return Auth::user();
}
return 'not logged';
}
public function status()
{
return dd(Auth::check());
}
這是用戶模式:
class User extends Eloquent implements UserInterface, RemindableInterface {
use UserTrait, RemindableTrait;
protected $table = 'user';
protected $hidden = array('user_password', 'remember_token');
protected $fillable = ['user_displayname', 'user_fname', 'user_lname', 'user_email', 'user_password'];
public $errors;
public static $rules = array(
'user_displayname' => 'required|unique:user,user_displayName',
'user_fname' => 'required',
'user_lname' => 'required',
'user_email' => 'required|unique:user,user_email',
'user_password' => 'required'
);
public function isValid($data)
{
$validation = Validator::make($data, static::$rules);
if ($validation->passes()) return true;
$this->errors = $validation->messages();
}
public function getAuthPassword()
{
return $this->user_password;
}
}
第二個問題。認證是使用laravel Sessions還是完全不同的事情?
編輯:
驗證是否有租約時間或任何類似的時間到了之後只是刪除會話?另外我的數據庫列「updated_at」和「created_at」與計算機相比給出了錯誤的時間。所以我在考慮Auth是否正在檢查某些時候,有可能因爲時間錯誤而導致它總是失敗。
P.S已經在stackoverflow中查看了其他解決方案。
謝謝
看起來更像是一個會話問題。要回答第二個問題 - 使用,身份驗證使用Laravel會話。 – Laurence 2014-09-25 03:35:41
是你的id列'id'或'user_id' - 查看你的代碼我猜你稱它爲'user_id'?它應該是'id' – Laurence 2014-09-25 04:27:13
我開始認爲會話配置可能存在問題。除了會話生命週期之外是否還有更多設置可以測試?我試着改變「config/session.php」的生命週期,沒有影響。還嘗試將user_id更改爲id。也沒有。 – DasBoot 2014-09-25 15:12:01