Auth:attempt() が成功した後、Auth::check() は失敗します。簡単な認証を行うために、laracast.com のチュートリアルに従っているだけです。この特定のチュートリアルhttps://laracasts.com/series/laravel-from-scratch/episodes/15。したがって、バージョン 4 と 5 の間でわずかな変更が加えられたか、何か間違ったことをしている可能性があります。
これは認証を行う関数で、2 番目の関数はチェックを行います。二人とも同じクラスです。
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;
}
}
2 番目の質問です。認証は laravel セッションを使用しますか、それともまったく別のものですか?
編集:
Auth には、期限が切れた後にセッションを削除するだけのリース時間または同様のものがありますか? また、私のデータベース列「updated_at」と「created_at」は、コンピューターと比較して間違った時間を示します。したがって、Auth が何らかの時間をチェックしている場合、時間の解釈が間違っているために常に失敗する可能性があると考えています。
PSはすでにstackoverflowの他のソリューションを見てきました。
ありがとうございました