我目前正在编写一个在后端使用Laravel 5.3的应用程序,我正在寻找一种覆盖默认密码重置行为的方法。
我需要更改的课程是" ResetPassword"位于这里: /Illuminate/Auth/Notifications/ResetPassword.php
更改的原因是,此文件中生成的重置URL对我的前端不正确 - 因为它使用url(),它将API url放在重置电子邮件中,而不是前端url。
答案 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;
}