如何在 Laravel 5 中更改默认重置密码链接

Posted

技术标签:

【中文标题】如何在 Laravel 5 中更改默认重置密码链接【英文标题】:How to Change Default Reset Password Link in Laravel 5 【发布时间】:2015-12-31 12:38:26 【问题描述】:

管理员登录后,我在我的 Laravel 5 应用程序中使用更改密码功能。我使用 laravel 提供的默认表单来更改密码功能,该功能重定向到 /userpasswords/email,当用户单击“发送密码重置链接”。在邮件 ID 上发送了一封邮件,但我想更改此 url。我的网址变成http://localhost/bqs_test/public/index.php/password/reset/1f488a5daf26b57af2d928bb9c0b14e627b34c3459d819f471d402c42f476bf2,通过电子邮件 ID 发送 但我希望它是http://localhost/bqs_test/public/index.php/userpasswords/reset/1f488a5daf26b57af2d928bb9c0b14e627b34c3459d819f471d402c42f476bf2。我该怎么做,我是 Laravel 的新手,所以请有人帮忙。我的代码如下:

<?php echo Form::open(array('url' => '/userpasswords/email', 'method' => 'post','class'=>'form-horizontal')); ?>
    <input type="hidden" name="_token" value=" csrf_token() ">
        <div class="form-group">
            <label class="col-md-4 control-label">E-Mail Address</label>
                <div class="col-md-6">
                <input type="email" class="form-control" name="email" value=" Auth::user()->email " readonly>
                        </div>
                    </div>
                    <div class="form-group">
                <div class="col-md-6 col-md-offset-4">
          <button type="submit" class="btn btn-primary">
            Send Password Reset Link
        </button>
    </div>
</div>

路由定义为:

Route::controllers([
'auth' => 'Auth\AuthController',
'password' => 'Auth\PasswordController',
    'userpasswords' => 'Auth\UserPasswordController'

]);

UserPasswordController 与 PasswordController 相同,但它使用不同的特征 ResetPasswords,与 ResetsPasswords 相同,略有变化。我在 ResetPasswords 中的 postEmail 方法是这样的:

public function postEmail(Request $request)

    $this->validate($request, ['email' => 'required|email']);

    $response = $this->passwords->sendResetLink($request->only('email'), function($m)
    
        $m->subject($this->getEmailSubject());
    );

    switch ($response)
    
                case PasswordBroker::RESET_LINK_SENT:
                    return redirect()->back()->with('status', trans($response));

                case PasswordBroker::INVALID_USER:
                    return redirect()->back()->withErrors(['email' => trans($response)]);
    

请高人帮忙,我该如何更改 URL。

【问题讨论】:

【参考方案1】:

您可以编辑或创建此视图以更改要发送的内容

<!-- resources/views/emails/password.blade.php -->
Click here to reset your password:  url('userpasswords/reset/'.$token) 

【讨论】:

我想要在刀片中使用更多变量。像 user_role。如何传递变量?【参考方案2】:
<?php
namespace App\Http\YourControllers;

use Illuminate\Foundation\Auth\SendsPasswordResetEmails;

class YourControllers extends Controller

    use SendsPasswordResetEmails;

    public function resetPassLink(Request $request)
    
        $response = $this->broker()->sendResetLink(['email' => $request->get('email')]);
        if ($response) 
            return view('...')->with('message', 'We have e-mailed your password reset link!');
        
    

【讨论】:

以上是关于如何在 Laravel 5 中更改默认重置密码链接的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 更改密码重置特定令牌的令牌持续时间

如何在 laravel 中更改重置密码电子邮件主题?

如何使用 laravel 5 中的队列通过电子邮件发送密码重置链接

Laravel 5.1 密码重置电子邮件主题行

如何在 Lumen 6x 中实现默认 Laravel 重置密码

Laravel 5密码重置不起作用