【问题标题】:Laravel 7 password resetLaravel 7 密码重置
【发布时间】:2020-10-01 15:11:55
【问题描述】:

我有以下 ForgottenPasswordController

<?php

namespace App\Http\Controllers\v1;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
use Illuminate\Http\Request;

class ForgotPasswordController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Password Reset Controller
    |--------------------------------------------------------------------------
    |
    | This controller is responsible for handling password reset emails and
    | includes a trait which assists in sending these notifications from
    | your application to your users. Feel free to explore this trait.
    |
    */

    use SendsPasswordResetEmails;

    protected function sendResetLinkResponse(Request $request, $response)
    {
        return response(['message' => $response]);
    }

    protected function sendResetLinkFailedResponse(Request $request, $response)
    {
        return response(['message' => $response], 422);
    }
}

和下面的 ResetPasswordController

<?php

namespace App\Http\Controllers\v1;

use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Auth\ResetsPasswords;
use Illuminate\Http\Request;

class ResetPasswordController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Password Reset Controller
    |--------------------------------------------------------------------------
    |
    | This controller is responsible for handling password reset requests
    | and uses a simple trait to include this behavior. You're free to
    | explore this trait and override any methods you wish to tweak.
    |
    */

    use ResetsPasswords;

    protected function sendResetResponse(Request $request, $response)
    {
        return response(['message' => $response]);
    }

    protected function sendResetFailedResponse(Request $request, $response)
    {
        return response(['error' => $response], 422);
    }


    /**
     * Where to redirect users after resetting their password.
     *
     * @var string
     */
    protected $redirectTo = RouteServiceProvider::HOME;
}

当我向 forgotPasswordController 发出 axios 请求时,我收到了按预期发送的电子邮件。然后,当我将新密码以及电子邮件地址和令牌提交回 ResetPasswordController 时,我收到以下响应,

错误:“passwords.token”

在请求重置时进一步检查,password_resets 表中没有保存电子邮件或令牌,为什么会这样,我没有通过laravel/ui --auth 更改 Auth 脚手架中的任何内容,除了从 2 种方法做出响应是 json 而不是刀片视图。

【问题讨论】:

  • 您是否在您的composer require laravel/ui 之后运行php artisan migrate
  • 另外,如果您要覆盖这些方法,您必须自己翻译响应消息:return response(['message' =&gt; trans($response)]);

标签: php laravel change-password


【解决方案1】:

转到\vendor\laravel\framework\src\Illuminate\Contracts\Auth\PasswordBroker.php 你会看到:

const INVALID_TOKEN = 'passwords.token';

现在只需更改您的愿望 CONST。快乐编码

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-27
    • 2017-08-04
    • 1970-01-01
    相关资源
    最近更新 更多