覆盖Laravel 5.3中的默认密码重置过程

时间:2016-09-14 14:44:41

标签: php laravel-5

我目前正在编写一个在后端使用Laravel 5.3的应用程序,我正在寻找一种覆盖默认密码重置行为的方法。

我需要更改的课程是" ResetPassword"位于这里: /Illuminate/Auth/Notifications/ResetPassword.php

更改的原因是,此文件中生成的重置URL对我的前端不正确 - 因为它使用url(),它将API url放在重置电子邮件中,而不是前端url。

2 个答案:

答案 0 :(得分:4)

您可以在 User.php

中覆盖CanResetPassword的{​​{3}}方法
use Illuminate\Notifications\Notifiable;
use App\Notifications\CustomResetPasswordNotification;

public function sendPasswordResetNotification($token)
{
    $this->notify(new CustomResetPasswordNotification($token));
}

并根据您的要求创建CustomResetPasswordNotification.php

检查密码重置电子邮件部分sendPasswordResetNotification()了解详情

答案 1 :(得分:0)

通过覆盖此处的用户类,我找到了一种快速简便的方法来覆盖密码重置过程:

/Illuminate/Foundation/Auth/User.php

基本上,我创建了我自己的版本:

f          =:  mean @: converge @: i.
  mean     =:  +/ % #
  converge =:  0:`(>:@$:)@.(?@2:)"0

我将其保存到/ App / Traits / Auth,现在在我的用户模型中使用它。

Dim cntl As String
 Dim frm As String
 Dim rst_UnitEntry As Recordset
 frm = "frm_UserEntry"

Set rst_UnitEntryCounts = CurrentDb.OpenRecordset("SELECT...)     
If rst_UnitEntryCounts.RecordCount <> 0 Then
        rst_UnitEntryCounts.MoveFirst
        Do Until rst_UnitEntryCounts.EOF = True
        If rst_UnitEntryCounts![UnitTypes_CumalativeTextBoxUserEntryForm] <> "" Then
            cntl = rst_UnitEntryCounts![UnitTypes_CumalativeTextBoxUserEntryForm]
            Forms(frm).Controls(cntl) = rst_UnitEntryCounts![SumOfUnitEntry_Unit_Count]
        End If
        rst_UnitEntryCounts.MoveNext
        Loop

完成后,您可以创建自己的“CanResetPassword”特征版本,并替换Notification类并进行必要的调整。

以下是“CanResetPassword”特征的示例替换:     

<?php

namespace App\Traits\Auth;

use Illuminate\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use App\Traits\Auth\Passwords\CanResetPassword;
use Illuminate\Foundation\Auth\Access\Authorizable;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;

class User extends Model implements
    AuthenticatableContract,
    AuthorizableContract,
    CanResetPasswordContract
{
    use Authenticatable, Authorizable, CanResetPassword;
}