Laravel 5.6 - перенаправление на маршрут после входа в систему на основе параметра GET URL - PullRequest
0 голосов
/ 10 сентября 2018

У меня стандартная свежая установка Laravel 5.6.

Для веб-пользователей я хочу, чтобы они могли войти в систему как обычно на /login и перенаправить их на свою пользовательскую панель - все хорошо.

Однако я что-то разрабатываю в Electron, и я хочу что-то почистить с сайта Laravel после входа в систему, а затем хочу закрыть окно, поэтому я надеялся, что есть способ потенциально передать параметр GET например, /login?app=true, который приведет меня к другому маршруту, а не к приборной панели.

Я бы не смог установить что-либо в сеансе или что-то еще. Максимум, что я могу сделать, это манипулировать DOM на странице входа в Electron.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

Вы можете использовать метод authenticated() в вашем LoginController;

public function authenticated(Request $request, $user)
{
  if($request->get("app")==false)
     return redirect("url");

  if($request->get("app")==true)
     return redirect("another-url");

  return redirect("dashboard")
}
0 голосов
/ 10 сентября 2018

Во-первых, я начал с изменения свойства черты use AuthenticatesUsers, чтобы оно использовало пользовательский, он был определен в том же пространстве имен - конечно, я удалил использование из верхней части класса.

Я как бы «расширил» черту, которую, я думаю, и просто прослушал ввод с конкретным именем, чтобы определить, какой маршрут возвращать. Что касается добавления ввода, я предварительно загружал некоторые JS в приложение Electron при загрузке окна, чтобы добавить вход и его значение.

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

use Illuminate\Http\Request;

trait AuthenticatesUsers
{
    use \Illuminate\Foundation\Auth\AuthenticatesUsers {
        \Illuminate\Foundation\Auth\AuthenticatesUsers::login as parentLogin;
    }

    private $newRouteUrl = '/newroute';

    public function login(Request $request)
    {
        $this->validateLogin($request);

        if ($this->hasTooManyLoginAttempts($request)) {
            $this->fireLockoutEvent($request);

            return $this->sendLockoutResponse($request);
        }

        if ($this->attemptLogin($request)) {
            if ($request->input('newRouteIdentifierInput')) {
                return $this->sendNewRouteResponse($request);
            }
            return $this->sendLoginResponse($request);
        }

        $this->incrementLoginAttempts($request);

        return $this->sendFailedLoginResponse($request);
    }

    protected function sendNewRouteResponse(Request $request)
    {
        $request->session()->regenerate();

        $this->clearLoginAttempts($request);

        return $this->authenticated($request, $this->guard()->user())
            ?: redirect()->intended($this->newRouteUrl);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...