Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#26 Re: Laravel 5.x » Не работает авторизация » 13.06.2017 15:51:50

Вывожу специальные сообщения на страницу.

return redirect()->back()->with('warningMessages', 'Логин и/или пароль не верны!');

Попробовал через

Auth::loginUsingId(1);

авторизоваться - вышло. Так что, как мне кажется, дело в AUth::attempt или в модели.

#27 Re: Laravel 5.x » Не работает авторизация » 13.06.2017 10:56:28

Через регистрацию пользователя добавил, но авторизация так же не проходит(

#28 Re: Laravel 5.x » Не работает авторизация » 13.06.2017 09:16:47

covobo пишет:
dima9595 пишет:
covobo пишет:

Ты в базу то надеюсь не вручную пользователя добавил? Ибо пароль хэшируется, и в недрах ларки он сравнивает хэши.
vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php:126 (метод validateCredentials)

Лол, а что, сейчас уже так не работает? Да, вручную добавлял, но думал что если пароль захэшировать, то всё будет ок) Спасибо, завтра проверю)

Если ты его "нормально" (через Illuminate\Hashing\BcryptHasher по дефолту) захэшировал - то должно работать.

Видос на тему - https://laracasts.com/series/laravel-5- … pisodes/13

Хэшировал через encrypt. Позже попробую создать нового пользователя через регистрацию)

#29 Re: Laravel 5.x » Не работает авторизация » 13.06.2017 00:00:05

covobo пишет:

Ты в базу то надеюсь не вручную пользователя добавил? Ибо пароль хэшируется, и в недрах ларки он сравнивает хэши.
vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php:126 (метод validateCredentials)

Лол, а что, сейчас уже так не работает? Да, вручную добавлял, но думал что если пароль захэшировать, то всё будет ок) Спасибо, завтра проверю)

#30 Re: Laravel 5.x » Не работает авторизация » 12.06.2017 15:16:32

Решил с нуля всё сделать, но эффект такой же, что сильно меня печалит, ибо на самом лёгком я запоролся. Код очень простой, но всё же авторизация не проходит. В БД всё норм. Т.к. простой запрос через Eloquent ORM проходит.

Контроллер:

<?php
namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class LoginController extends Controller{
    use AuthenticatesUsers;
    protected $redirectTo = '/';

    public function __construct(){
        $this->middleware('guest')->except('logout');
    }

    public function getAuthLogin(){
        return view('Auth.getAuthLogin');
    }

    public function postAuthLogin(Request $request){
        $this->validate($request, [
            'login_users' => 'required',
            'password' => 'required',
        ]);

        if(Auth::attempt( ['login_users' => $request->login_users, 'password' => $request->password] )){
            return redirect()->route('home')->with('successMessages', 'Вы успешно авторизовались!');
        }else{
            return redirect()->back()->with('warningMessages', 'Логин и/или пароль не верны!');
        }
    }
}

Модель:

<?php
namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable{
    use Notifiable;
    protected $table = 'users';
    protected $primaryKey = 'id_users';

    protected $fillable = [
        'login_users', 'mail_users', 'password',
    ];

    protected $hidden = [
        'password', 'remember_token',
    ];
}

Route:

Route::group(['middleware' => 'guest'], function(){
//    Route::get('/', ['as' => 'welcome', 'uses' => 'HomeController@getWelcome']);
    Route::group(['prefix' => 'auth'], function(){
        Route::get('login', ['as' => 'Auth.getLogin', 'uses' => 'Auth\LoginController@getAuthLogin']);
        Route::post('login', ['as' => 'Auth.postLogin', 'uses' => 'Auth\LoginController@postAuthLogin']);
    });
});

В чём же проблема?

#31 Re: Laravel 5.x » Не работает авторизация » 07.06.2017 10:02:01

Bender пишет:

Возможно ты не переопределил метод username() в LoginController и проверка происходит по стандартному полю email вместо login_users , как у тебя .

А где это можно переопределить?
Да и вроде хватит того, что написал в Auth::attempt()

#32 Laravel 5.x » Не работает авторизация » 06.06.2017 20:48:12

dima9595
Ответов: 20

Целый год из-за армии не писал код. Решил вернуться в коддинг и установил новый Laravel 5 (последняя версия). Написал простой код авторизации, а авторизация не проходит. В чём дело?

Controller:

public function postAuthLogin(Request $request){
        $data = $request->all();    // Все данные
        $rules = [
            'login_users' => 'required',
            'password' => 'required'
        ];

        $validator = Validator::make($data, $rules);

        if(!$validator->fails()){
            if(Auth::attempt(['login_users' => $data['login_users'], 'password' => $data['password']], $request->remember) ){
                return redirect()->route('home')->with('successMessages', 'Вы успешно авторизовались!');
            }else{
                // Выполняется этот код!!!
                return redirect()->back()->with('warningMessages', 'Логин и/или пароль не верны!');
            }
        }else{
            return redirect()->back()->with('errors', $validator->messages());
        }
    }

Model User (врятли что-то даст)

class User extends Authenticatable{
    use Notifiable;
    protected $primaryKey = 'id_users';

    protected $fillable = [
        'login_users', 'mail_users', 'password',
    ];

    protected $hidden = [
        'password', 'remember_token',
    ];
}

Если что-то нужно будет, скину...Заранее спасибо!

#34 Re: Laravel 5.x » Почему не работает авторизация? » 15.05.2016 22:32:13

Уже решено! Как я понял, проблема была в User.php. Там по стандарту остались не заменены входящие данные, с которыми в таблице не были одинаковыми.

#35 Re: Laravel 5.x » Почему не работает авторизация? » 15.05.2016 18:39:44

Сейчас не использую middleware => web.  По идеи сессия записывается, а вот на следующей странице не отображается. В storage/framework/session всё записывается.

#37 Re: Laravel 5.x » Помогите с настройкой vps » 13.05.2016 11:29:20

Файл httpd.conf лежит в директории  /home/admin/conf/web. но через sftp он не пускает,на права ругается. Через ssh с помощью sudo,я попал в эту директорию. Но как мне теперь открыть этот файл?

Советую использовать mc (sudo apt-get install mc). Хороший файловый менеджер для Linux (пробовал на Ubuntu, хз как у вас). А дальше там легко разобраться как открыть.

#38 Re: Laravel 5.x » middleware => web уже не обязателен?) » 12.05.2016 13:03:56

И ещё один вопрос: У меня база не стандартная, т.е. вместа username => login_users, email => mail_users. Как и где мне поменять, что бы авторизация проходила?
И кстати, у меня всё равно авторизация не срабатывает.
Из дампа сессии:

array:5 [▼
  "_token" => "UTfy9Q9gslW9vfgKZ1bkNyOdQYAfmCeWh8YoaNFq"
  "url" => array:1 [▶]
  "_previous" => array:1 [▶]
  "flash" => array:2 [▶]
  "login_web_59ba36addc2b2f9401580f014c7f58ea4e30989d" => null
]

#39 Re: Laravel 5.x » middleware => web уже не обязателен?) » 12.05.2016 12:29:48

TrueKanonir пишет:
dima9595 пишет:

И как сделать так, что бы не было обязательной авторизации?

Можно просто роуты авторизации убрать,и авторизации не будит.
UPD: а как тогда в дашбоард попадать собираетесь без авторизации?))

Я имел ввиду, что бы сразу не редиректило на авторизацию. А то только после авторизации появляется сайт.

#40 Re: Laravel 5.x » middleware => web уже не обязателен?) » 11.05.2016 19:26:45

И как сделать так, что бы не было обязательной авторизации?

#41 Re: Laravel 5.x » middleware => web уже не обязателен?) » 11.05.2016 19:24:35

TrueKanonir, а это обязательно? Может и так как нить оставить можно?

#42 Re: Веб-разработка » Ошибка 403 из за отсутвия index.php » 11.05.2016 19:02:07

Пряморукое решение есть - просто настроить Apache так, как вам нужно. Все эти директории (www, html и т.п.) настраиваются в конфиге. Так что смело изучайте конфиг и документацию.

#43 Re: Laravel 5.x » middleware => web уже не обязателен?) » 11.05.2016 15:17:33

А у меня не работает, ни с middleware, ни без него? Что делать?

Route::get('/', ['as' => 'index', 'uses' => 'HomeController@index']);

Route::group(['prefix' => 'auth'], function(){
    Route::get('login', ['as' => 'auth.login.get', 'uses' => 'Auth\AuthController@getLogin']);
    Route::post('login', ['as' => 'auth.login.post', 'uses' => 'Auth\AuthController@postLogin']);
});

#44 Re: Laravel 5.x » Почему не работает авторизация? » 07.05.2016 19:19:25

Написал даже так - не работает.

Route::group(['middleware' => 'web'], function(){
    Route::get('/', ['as' => 'index', 'uses' => 'HomeController@index']);

    Route::group(['prefix' => 'auth'], function(){
        Route::get('login', ['as' => 'auth.getLogin', 'uses' => 'Auth\AuthController@getLogin']);
        Route::post('login', ['as' => 'auth.postLogin', 'uses' => 'Auth\AuthController@postLogin']);
        Route::get('register', ['as' => 'auth.getRegister', 'uses' => 'Auth\AuthController@getRegister']);
    });
});

Всё равно ни чего не пашет. Хотя только усугубил ситуацию. Раньше, через сессии выводились сообщения, мол пользователь авторизован, а сейчас их нет.

#45 Laravel 5.x » Почему не работает авторизация? » 07.05.2016 17:21:33

dima9595
Ответов: 6

Не думал что с таким столкнусь, раньше как то это решил, но вот только не помню как( Чёртов Angular, весь мозг сожрал(((

Написал простую авторизацию, по идеи, всё работает - отдаёт данные авторизованного пользователя (через dd(Auth::user())), а вот после обновлении страницы пропадает, как будто даже не авторизован(
Читал на Тостере, мол дело в сессиях и нужно использовать middleware web, но я их использую, а толку нет.

Route:

Route::get('/', ['as' => 'index', 'uses' => 'HomeController@index']);

Route::group(['middleware' => 'web', 'prefix' => 'auth'], function(){
    Route::get('login', ['as' => 'auth.getLogin', 'uses' => 'Auth\AuthController@getLogin']);
    Route::post('login', ['as' => 'auth.postLogin', 'uses' => 'Auth\AuthController@postLogin']);
    Route::get('register', ['as' => 'auth.getRegister', 'uses' => 'Auth\AuthController@getRegister']);
});

Если ещё какие-то данные нужны, то выложу. Просто думаю что дело в роутах. Но как решить - хз(
Заранее благодарю за помощь.

PS: Работаю на локалке. Ошибок ни каких не выводит.

#46 Re: Laravel 5.x » Не верно работает работа с авторизацией » 07.04.2016 21:02:21

Всё, решено)

Пробовал и с validatorLogin (на форуме не опубликовал, т.к. потом попытался так сделать) - не работало. А сейчас всё ок)

#47 Re: Laravel 5.x » Передача почты по smtp не работает » 06.04.2016 21:40:59

Порты открыты? На домен прикручена запись для почты?

#48 Re: Laravel 5.x » Не верно работает работа с авторизацией » 06.04.2016 21:39:31

WebDev пишет:

Но лучше все переделать и валидацию в Request писать

Т.е. старым, дедовским способом?
Validate::make?

Я пробовал создавать:

protected function validatorLogin(array $data){
        return Validator::make($data, [
            'login_users' => 'required',
            'password' => 'required',
        ]);
    }

но каким-то магическим способом эта фигня не считывалась, хоть в авторизации я явно указывал её...

$v = $this->validatorLogin($data);

#50 Re: Laravel 5.x » hQuery unable to create socket » 06.04.2016 18:32:55

С на своём сайте вы поддерживаете https?

Подвал раздела