Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Не могу сделать авторизацию, вот код
public function createuser()
{
$userNickname = Input::get('username');
$password = Input::get('password');
$userPassword = $password;
$side = Input::get('side');
$user = new User;
$user->user_nickname = "$userNickname";
$user->password = "$userPassword";
$user->side = "$side";
$user->save();
if (Auth::attempt(array('user_nickname' => $user->user_nickname, 'password' => $user->password), true)) {
return Redirect::route('gameIndex');
}
}
не перекидыват на именованый маршрут, а значит пользователь не авторизован, что в моем коде не так?
все еще жду ответа
Не в сети
Как у тебя роут прописан?
Нужно задать именованный маршрут, чтобы к нему обращаться, как ты хочешь
http://laravel.ru/docs/v4/routing#именованные
Это был ответ на вопрос, а теперь общие замечания:
зачем ты присваиваешь по три раза одно значение?
$password = Input::get('password');
$userPassword = $password;
$user->password = "$userPassword"; // зачем кавычки?
Про хеширование паролей не забывай
Antonina, несколько раз, потому раньше хешировал, потом просто хеш убрал, маршрут именован, это не ответ, я же сказал, проблема в авторизации
Proger_XP, запрос посылается, например вот так:
$user = User::find($user->id);
Auth::login($user);
return Redirect::route('gameIndex');
все работает, авторизация проходит нормально
пишут убедиться, что поле пароля принимает минимум 0 символов, но все поля принимают минимум 0 символов
Не в сети
Как его запустить и посмотреть? что гуглить?
Вчера установил профайлер, почитал и не понял как его использовать, можете в двух словах объяснить для чайника?
Это просто инструмент для отслеживания запросов к БД, использования памяти, времени выполнения функций и т.п. Вообще говоря, чтобы только видеть запросы к БД можно даже без отдельного инструмента обойтись (хоть с ним и удобнее) — в Laravel есть событие illuminate.query — оно вызывается при каждом запросе, подпишись на него и выводи запросы в браузер или в файл.
Не в сети
Цель понял, пока не очень понимаю, как это сделать, завтра постараюсь
Мне кажется это странным немного, я просто рнализовал этот код на нулячем ларавеле, думал ошибка будет явной
Не в сети
По коду видно, пароли добавляются без хэша, в ауз отдаются без хеша, 255 символов, варчар, утф8юникодси
Не в сети
Воот, наконец-то, теперь вопрос, я должен их хешировать и при добавлении в бд и при проверке? Так я вроде тоже пробывал
тоже не канает
$username = Input::get('username');
$password = Input::get('password');
$userPassword = Hash::make($password);
if(Auth::attempt(array('email' => $username, 'password' => $userPassword), true)){
return Redirect::route('gameIndex');
}
это вход, а вот рега:
$userNickname = Input::get('username');
$password = Input::get('password');
$userPassword = Hash::make($password);
$side = Input::get('side');
$user = new User;
$user->username = $userNickname;
$user->password = $userPassword;
$user->side = $side;
$user->save();
Слушай, ну неужели сложно просто прочитать документацию и сделать так, как там написано?
Не в сети
так все по документацие, только имейл изменил на юзеррнэйм и то, даже с имейлом пробовал
В документации не сказано, что нужно хэшировать пароль при входе. Ты в целом понимаешь, как это работает?
Сейчас ты при входе хэшируешь пароль дважды — сам, а затем это же делает Auth::attempt(). Естественно, пароли не совпадают.
Не в сети
Воо, сейчас все вышло) спасибо большое) теперь у меня в голове все сложилось)
Не в сети
А как изменить алгоритм шифрования пароля? У меня в старой базе они шифруются мд5, как настроить на работу с ларавель старую бд не знаю