Laravel logoutOtherDevices особенность: после входа он перенаправляет на последний полученный URL вместо домашнего URL - PullRequest
0 голосов
/ 14 января 2019

В моем приложении, если залогинен на одном компьютере, нужно выйти на других. Я использую недействительные сессии на других устройствах

для реализации функции. Работает. Но проблема в том, что после взаимозаменяемого входа в систему на нескольких устройствах вместо загрузки домашнего URL-адреса он перейдет к последней загруженной странице.

public function authenticated(Request $request, $user)
{      

    $data = $request->all();
    if (Spark::usesTwoFactorAuth() && $user->uses_two_factor_auth) {
        return $this->redirectForTwoFactorAuth($request, $user);
    }

    Auth::logoutOtherDevices($request->password);
    return redirect()->intended($this->redirectPath());
} 

включено в мой LoginCOntroller

1 Ответ

0 голосов
/ 14 января 2019

Вот что делает intended(). Если вы проверите источник,

/**
 * Create a new redirect response to the previously intended location.
 *
 * @param  string  $default
 * @param  int     $status
 * @param  array   $headers
 * @param  bool    $secure
 * @return \Illuminate\Http\RedirectResponse
 */
public function intended($default = '/', $status = 302, $headers = [], $secure = null)
{
    $path = $this->session->pull('url.intended', $default);

    return $this->to($path, $status, $headers, $secure);
}

... вы увидите, что он попытается извлечь намеченный URL из сеанса. Если вы этого не сделаете, вы можете просто удалить его.

public function authenticated(Request $request, $user)
{      

    $data = $request->all();
    if (Spark::usesTwoFactorAuth() && $user->uses_two_factor_auth) {
        return $this->redirectForTwoFactorAuth($request, $user);
    }

    Auth::logoutOtherDevices($request->password);
    return redirect($this->redirectPath());
} 

Вы также должны убедиться, что в вашем LoginController есть свойство $redirectTo, которое указывает на вашу домашнюю страницу.

/**
 * Where to redirect users after login.
 *
 * @var string
 */
protected $redirectTo = '/';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...