登录后重定向laravel 7

时间:2020-04-23 11:20:31

标签: php laravel

我想在登录后将用户重定向到'/ details ...,但它将我重定向到'/ home'

LoginController.php

public function authenticate(Request $request)
    {
        $credentials = $request->only('email', 'password');

        if (Auth::attempt($credentials)) {
            // Authentication passed...
            return redirect()->intended('/details');
        }
        return redirect('/details');

    }

RouterServiceProvider.php

public const HOME = '/details';

我已经尝试过了,但是还是做不到

Laravel redirect back after login

5 个答案:

答案 0 :(得分:3)

默认情况下,在LoginController中只需替换

protected $redirectTo = '/home';

protected $redirectTo = '/details';

但是,如果您使用自己的身份验证,则可以这样使用

public function authenticate(Request $request)
{
    $credentials = $request->only('email', 'password');

    if (Auth::attempt($credentials)) {
        // Authentication passed...
        return redirect($this->redirectPath());
        //return redirect()->intended('/details');
    }
    return redirect($this->redirectPath());

}

答案 1 :(得分:3)

在您的Auth \ LoginController.php中,您可以覆盖登录后使用的功能:

/**
 * The user has been authenticated.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  mixed  $user
 * @return mixed
 */
protected function authenticated(Request $request, $user)
{
    return redirect()->route('route.name');
}

答案 2 :(得分:1)

请尝试以下操作:

if (Auth::attempt($credentials)) {
            // Authentication passed...
            return redirect('/details');
        }

答案 3 :(得分:0)

您需要在用户模型中添加此道具。

protected $primaryKey = 'user_id';

答案 4 :(得分:0)

Laravel 7

可以通过以下方式使用authenticated函数:

1。更改原始功能

原始authenticated函数存储在vendor/laravel/ui/auth-backend/AuthenticatesUsers.php中,如下更改:

protected function authenticated(Request $request, $user)
{
    if ($user->is_superuser) {
        return redirect('/admin');
    }
    return redirect('/');
}

2。覆盖

存储在LogniController中的app/Http/Controllers/LoginController.php中粘贴顶部函数。

提示:is_superuser是users表中的一个布尔字段,显示用户是否为admin(超级用户)。