跳至内容

自定义重定向 URL

自定义登录重定向

您可以使用 app/Config/Auth.php 配置文件中的 loginRedirect() 方法自定义用户在登录时重定向到的位置。如果您想根据用户组或其他条件进行重定向,这将非常方便。

public function loginRedirect(): string
{
    $url = auth()->user()->inGroup('admin')
        ? '/admin'
        : setting('Auth.redirects')['login'];

    return $this->getUrl($url);
}

通常,您会希望为不同的用户组设置不同的重定向。一个简单的示例可能是,您希望将管理员重定向到 /admin,而所有其他组重定向到 /app/Config/Auth.php 配置文件还包括您可以添加其他逻辑以实现此目的的方法

public function loginRedirect(): string
{
    if (auth()->user()->can('admin.access')) {
        return '/admin';
    }

    $url = setting('Auth.redirects')['login'];

    return $this->getUrl($url);
}

自定义注册重定向

您可以在 app/Config/Auth.php 配置文件的 registerRedirect() 方法中自定义用户在注册后重定向到的位置。

public function registerRedirect(): string
{
    $url = setting('Auth.redirects')['register'];

    return $this->getUrl($url);
}

自定义注销重定向

还可以通过 app/Config/Auth.php 配置文件的 logoutRedirect() 方法覆盖注销重定向。这不会像登录和注册那样经常使用,但您可能会发现需要。例如,如果您以编程方式注销用户,您可能希望将他们带到指定注销原因的页面。否则,您可能会将他们带到主页甚至登录页面。

public function logoutRedirect(): string
{
    $url = setting('Auth.redirects')['logout'];

    return $this->getUrl($url);
}