在将授权 Controller 移动到我的Http/Controllers/Admin/Auth
目录,以及将授权 View 移动到admin/auth
并将路由文件设置为这个:
Route::group(['middleware' => 'web', 'prefix' => 'admin', 'namespace' => 'Admin'], function() {
Auth::routes();
});
点击重设密码邮件中的链接时,出现错误:
NotFoundHttpException in RouteCollection.php line 161:
我在 Controller 中修改了 showResetForm 方法,如下所示:
public function showResetForm(Request $request, $token = null)
{
return view('admin.auth.passwords.reset')->with(
['token' => $token, 'email' => $request->email]
);
}
这是 php artisan route:list
中列出的路由:
POST | admin/password/email | | App\Http\Controllers\Admin\Auth\ForgotPasswordController@sendResetLinkEmail | web,web,guest |
| | POST | admin/password/reset | | App\Http\Controllers\Admin\Auth\ResetPasswordController@reset | web,web,guest |
| | GET|HEAD | admin/password/reset | | App\Http\Controllers\Admin\Auth\ForgotPasswordController@showLinkRequestForm | web,web,guest |
| | GET|HEAD | admin/password/reset/{token} | | App\Http\Controllers\Admin\Auth\ResetPasswordController@showResetForm | web,web,guest |
| | GET|HEAD | admin/register | | App\Http\Controllers\Admin\Auth\RegisterController@showRegistrationForm | web,web,guest |
| | POST | admin/register | | App\Http\Controllers\Admin\Auth\RegisterController@register | web,web,guest
用户在密码重置邮件中收到的链接仍然指向没有管理员前缀的旧路由,我该如何更改?
最佳答案
首先,您必须覆盖 Illuminate\Auth\Notifications\ResetPassword
类 toMail
函数。将 [URL_TO_RESETPWD]
替换为您的 URL。
namespace App\Notifications;
use Illuminate\Auth\Notifications\ResetPassword;
use Illuminate\Notifications\Messages\MailMessage;
class AppResetPassword extends ResetPassword {
// Overriding the function
public function toMail($notifiable) {
return (new MailMessage)
->line('You are receiving this email because we received a password reset request for your account.')
->action('Reset Password', [URL_TO_RESETPWD], $this->token))
->line('If you did not request a password reset, no further action is required.');
}
}
下一步 在您的管理员用户模型中,覆盖 CanResetPassword
特征的 sendPasswordResetNotification
函数以使用上述类。
public function sendPasswordResetNotification($token) {
$this->notify(new App\Notifications\AppResetPassword\ResetPasswordNotification($token));
}
希望对您有所帮助。
关于php - Laravel 5.3 - 更改重置密码的身份验证路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40364287/