【问题标题】:Laravel 5.4 Authentication password reset redirect based on email addressLaravel 5.4 基于电子邮件地址的身份验证密码重置重定向
【发布时间】:2019-08-12 12:37:51
【问题描述】:

我参与了一个使用 Laravel 5.4 并使用内置身份验证的网站。

我添加了一个“忘记密码”链接,其中显示了通过电子邮件发送密码的 ResetPasswordController@showLinkRequestForm 提交时重置链接,然后ResetPasswordController@showResetForm在提交时重定向到登录页面。

我遇到的问题是我们有两个不同的用户——客户和管理员。我有能力确定哪个是 通过注册的电子邮件地址,但我希望每种类型的密码重置后的重定向都不同 (客户端 = '/' 和管理员 = '/admin')。 这是怎么做到的?

【问题讨论】:

  • 您是使用 Auth 生成重置 url(令牌)还是您的自定义方法?
  • 我正在使用 Auth 生成令牌
  • 那么你应该建立一个自定义的。检查用户是客户端还是管理员,然后将参数添加到路由。这是一个关于如何开始的例子:stackoverflow.com/a/54664095/1076753
  • 谢谢。我会试试看的。

标签: laravel email authentication redirect login


【解决方案1】:

如果您在控制器中使用 ResetsPasswords 特征,您可以创建自己的 redirectTo() 方法,该方法将被调用以重定向用户:

// import the needed trait
use Illuminate\Foundation\Auth\ResetsPasswords;

class YourResetPasswordController {
    // use the needed trait
    use ResetsPasswords;

    // override the method that redirects the user
    public function redirectTo()
    {
        if (auth()->user()->isAdmin()) {
            return redirect('/admin');
        } else {
            return redirect('/');
        }
    }
}

如果对你有帮助,请告诉我:)

【讨论】:

    猜你喜欢
    • 2020-11-01
    • 1970-01-01
    • 2017-12-24
    • 1970-01-01
    • 1970-01-01
    • 2019-03-26
    • 2020-02-15
    • 2020-01-04
    • 2017-11-12
    相关资源
    最近更新 更多