Bandicoot
@Bandicoot
Вась-программист

Почему не работает авторизация в Laravel?

Вроде все делаю как следует, но есть косяк с авторизацией.

Итак, модель User:
class User extends Eloquent implements UserInterface, RemindableInterface {

	use UserTrait, RemindableTrait;

	/**
	 * The database table used by the model.
	 *
	 * @var string
	 */
	protected $table = 'users';
	protected $primaryKey = 'id';

	/**
	 * The attributes excluded from the model's JSON form.
	 *
	 * @var array
	 */
	protected $hidden = array('password', 'remember_token');
	protected $fillable = array('username', 'email', 'telephone');

	public static $rules = array(
		'username' => 'required|min:2|alpha',
		'email' => 'required|email|unique:users',
		'telephone' => 'required|between:10,12',
		'password' => 'required|alpha_num|between:8,12|confirmed',
		'password_confirmation' => 'required|alpha_num|between:8,12'
	);

}


Метод контроллера:
public function postSignin()
	{
		if(Auth::attempt(array('email' => Input::get('email'), 'password' => Input::get('password')), true)) {
			return Redirect::to('/')->with('message', 'Добро пожаловать и знакомиться!)');
		}

		return Redirect::to('auth/signin')->with('message', 'Ошибочка вышла! Попробуйте еще раз ;)');
	}


Проверка:
@if( Auth::check() )
                Здравствуйте, {{ Auth::user()->username }} !<br/>
                {{ HTML::link('auth/signout', 'Выход') }}
            @else
                {{ HTML::link('auth/signin', 'Вход') }} | {{ link_to('auth/signup', 'Регистрация') }}
            @endif

И еще сообщения:
@if(Session::has('message'))
                <p class="alert">{{ Session::get('message') }}</p>
            @endif


В результате после успешной попытки авторизации и перенаправления на главную страницу выводит
{{ HTML::link('auth/signin', 'Вход') }} | {{ link_to('auth/signup', 'Регистрация') }}

и не выводит сообщения Session. В чем может быть дело?

UPD: При редиректе на несколько секунд выводит пустую страницу "I redirecting to..." и сессия обрывается. Кто сталкивался с этой проблемой, прошу откликнуться

UPD2: Проблему решил, просто переписав весь код.
  • Вопрос задан
  • 3271 просмотр
Пригласить эксперта
Ответы на вопрос 2
akserdin
@akserdin
PHP/JS developer
А не менял ли ты настройки сессий в файле session.php ? Если не менял, то потестируй с другими драйверами сессий. А еще проверь, есть права на запись у группы (775) для папки /app/storage

И вывали весь Session::all(), и посмотри, что в нем есть.
Ответ написан
Комментировать
@slavabars
Веб программист
Покажи какие у тебя поля в бд.
Пароль в hash собрал?
Либо столбца токена не хватает в бд либо пароль не к хеше
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы