laravel Auth :: check () не работает

Auth :: check () завершается неудачно после успешного Auth: попытки (). Я просто следую инструкциям laracast.com, чтобы сделать простую аутентификацию. Этот конкретный учебник https://laracasts.com/series/laravel-from-scratch/episodes/15 . Так что либо было сделано небольшое изменение между 4 и 5 версиями, либо я делаю что-то не так.

Это функция, которая выполняет аутентификацию, а вторая выполняет проверку. Оба они в одном классе.

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 или это совсем другое?

РЕДАКТИРОВАТЬ:

Есть ли у Auth время аренды или что-то подобное, что просто удаляет сессию по истечении времени? Кроме того, мои столбцы базы данных «updated_at» и «create_at» дает неправильное время по сравнению с компьютером. Поэтому я думаю, что если Auth проверяет какие-то моменты времени, может быть вероятность того, что он всегда завершится неудачей из-за неверно истолкованного времени.

P.S уже просматривал другие решения в stackoverflow.

Спасибо

0

Решение

выглядит как параметры для Auth :: попытки (); в действии, попробуйте использовать это.

public function store()
{
$credentials = array('user_displayname'=>Input::get('user_displayname'),
'user_password'=> Input::get('user_password'));
if (Auth::attempt($credentials))
{
return Auth::user();
}

return 'not logged';
}
1

Другие решения

Я думаю, что у Laravel есть ошибка. если вы используете Auth :: попытаться проверить свои учетные данные, тогда верните true и ‘уничтожьте сеанс’. Таким образом, мы перенаправляем наш URL и используем Auth :: check (), чтобы он возвращал false. потому что сессия разрушена, и вы потеряли свои данные для проверки.

1

Я вижу, что вы уже отошли от этого, но другой момент заключается в том, что laravel довольно строг в отношении хранения таблиц базы данных во множественном числе (пользователи) и модели единственного числа (пользователь). Я вижу, вы явно объявляете таблицу как пользователя в модели, но, возможно, могли бы создать путаницу с Laravel.

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector