Laravel 5.0::修改密码后无法登录

问题描述 投票:0回答:3

我是 Laravel 的绝对初学者。我目前正在使用 Laravel 5.0

通过默认的密码重置页面更新密码后,我无法登录。

一切都应该按照我的方式进行。 重置密码后,我看到数据库上的密码已更新;电子邮件和重置密码的链接将发送到指定的电子邮件地址。 但是,我无法使用刚刚更新的新密码登录。

如果有人遇到过这种问题,可以告诉我一些建议吗?

英语不是我的母语,所以如果这个问题对您来说没有意义或需要更多信息,请留下您的评论! 任何意见,将不胜感激!预先感谢!

路线.php

// Password reset link request routes...
Route::get('password/email', 'Auth\PasswordController@getEmail');
Route::post('password/email', 'Auth\PasswordController@postEmail');

// Password reset routes...
Route::get('password/reset/{token}', 'Auth\PasswordController@getReset');
Route::post('password/reset', 'Auth\PasswordController@postReset');

密码控制器.php

<?php namespace App\Http\Controllers\Auth;

 use App\Http\Controllers\Controller;
 use Illuminate\Contracts\Auth\Guard;
 use Illuminate\Contracts\Auth\PasswordBroker;
 use Illuminate\Foundation\Auth\ResetsPasswords;

class PasswordController extends Controller {
    use ResetsPasswords;

    public function __construct(Guard $auth, PasswordBroker $passwords)
    {
        $this->auth = $auth;
        $this->passwords = $passwords;

        $this->middleware('guest');
     }

 }
php laravel authentication laravel-5
3个回答
4
投票

我一直在寻找答案,找不到解决方案,但后来我不得不像这样解决它。

您的密码将根据您的用户模型进行两次哈希处理,当您重置密码时,请注释掉其中之一。

在 ResetsPassword.php 文件中,我删除了哈希值,但将 bcrypt 留在了我的用户模型中,它开始正常工作

 protected function resetPassword($user, $password)
{
   // $user->password = Hash::make($password);
    $user->password = $password;

    $user->setRememberToken(Str::random(60));

    $user->save();

    event(new PasswordReset($user));

    $this->guard()->login($user);
}

//用户模型

  public function setPasswordAttribute($password)
{
    $this->attributes['password'] = bcrypt($password);
}

2
投票

同样的事情也发生在我身上一次。我在网站的私人部分有一个表格,用户可以在其中更改电子邮件、姓名和密码。

为了保存该密码而不是仅在表单上执行此操作,我添加了一个mutator,如下所示:

/**
 * Hash password on save
 * @param $value
 */
public function setPasswordAttribute( $value ) {
    $this->attributes['password'] = bcrypt($value);
}

问题是重置密码使用用户模型和密码获取的双散列,如 @tptcat 评论的那样。


0
投票

在 Laravel 中重置密码后,使用 Jetstream 登录不起作用...

我的问题是实时服务器,所以我关闭了它......问题就消失了

© www.soinside.com 2019 - 2024. All rights reserved.