@yatort

Проверка, запрос в базу при авторизации в laravel?

Всем привет!

Пытаюсь разобраться с авторизацией

Задача сразу после ввода логина и пароля и непосредственно "тыка" на кнопку "войти" в логике делать проверку (отправлять запрос в базу, делаю проверку на какой сайт заходит пользователь, переключаю его на нужный - на случай если у него несколько доменов)

Проблема в том что не могу найти тот самый файл куда впишу все эти проверки

пытался ставить в:

namespace App\Http\Controllers\Auth;
... 
class LoginController extends Controller
... 
public function __construct()
    {
       /// вставлял, не работает
        $this->middleware('guest')->except('logout');
    }


namespace App\Http\Middleware;
class Authenticate extends Middleware
protected function redirectTo($request)
    {
// тоже не але
}


namespace App\Providers;
class AuthServiceProvider extends ServiceProvider
 public function boot()
    {
        $this->registerPolicies();

       // и сюда тоже пытался
    }


Подскажите, где же тот самый файл или может в методе надо что дописать, чтобы при авторизации выполнялись мои проверки?
  • Вопрос задан
  • 273 просмотра
Решения вопроса 1
@bubaley
Здравствуйте, вы можете переопределить сам механизм авторизации, методом login
Или уже отработать успешную авторизацию.
Это необходимо добавить в Auth/LoginController
Конечно лучше зайти в сам контроллер от которого наследуется LoginController и скопировать оттуда, чтобы быть привязанным к своей версии Лары.
public​ ​function​ ​login​(​Request​ ​$request​)​
​    {​
​        ​if​ (​isset​(​$request​->​next​)) ​$this​->​redirectTo​ ​=​ ​$request​->​next​;​
​
​        ​$this​->​validateLogin(​$request​);​
​
​        ​//​ If the class is using the ThrottlesLogins trait, we can automatically throttle​
​        ​//​ the login attempts for this application. We'll key this by the username and​
​        ​//​ the IP address of the client making these requests into this application.​
​        ​if​ (​method_exists​(​$this​, ​'​hasTooManyLoginAttempts​'​) ​&&​
​            ​$this​->​hasTooManyLoginAttempts(​$request​)) {​
​            ​$this​->​fireLockoutEvent(​$request​);​
​
​            ​return​ ​$this​->​sendLockoutResponse(​$request​);​
​        }​
​
​        ​if​ (​$this​->​attemptLogin(​$request​)) {​
​            ​return​ ​$this​->​sendLoginResponse(​$request​);​
​        }​
​
​        ​//​ If the login attempt was unsuccessful we will increment the number of attempts​
​        ​//​ to login and redirect the user back to the login form. Of course, when this​
​        ​//​ user surpasses their maximum number of attempts they will get locked out.​
​        ​$this​->​incrementLoginAttempts(​$request​);​
​
​        ​return​ ​$this​->​sendFailedLoginResponse(​$request​);​
​    }​
​
​    ​/**​
​     * The user has been authenticated.​
​     *​
​     * ​@param​  \Illuminate\Http\Request  $request​
​     * ​@param​  mixed  $user​
​     * ​@return​ mixed​
​     ​*/​
​    ​protected​ ​function​ ​authenticated​(​Request​ ​$request​, ​$user​)​
​    {​
​        ​return​ response([​
​            ​'​result​'​ ​=>​ ​'​success​'​,​
​            ​'​value​'​ ​=>​ ​$user​
​        ]);​
​    }​
​
​    ​/**​
​     * Get the failed login response instance.​
​     *​
​     * ​@param​  \Illuminate\Http\Request  $request​
​     * ​@return​ \Symfony\Component\HttpFoundation\Response​
​     *​
​     * ​@throws​ \Illuminate\Validation\ValidationException​
​     ​*/​
​    ​protected​ ​function​ ​sendFailedLoginResponse​(​Request​ ​$request​)​
​    {​
​        ​return​ response([​
​            ​'​result​'​ ​=>​ ​'​fail​'​,​
​            ​'​value​'​ ​=>​ ​'​Неверный логин или пароль​'​
​        ]);​
​    }​
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы