使用Crypt :: encrypt方法后,Laravel身份验证失败

时间:2018-04-05 11:09:39

标签: php laravel authentication encryption

我正在使用users table

最近,我要求加密 Encryptable trait的数据。所以,我已经关注了[this] [1]链接,并创建了一个<?php namespace App\Traits; use Config; use Crypt; trait Encryptable { public function getAttribute($key) { $value = parent::getAttribute($key); if (in_array($key, $this->encryptable) && Config::get('app.encrypt_data_at_rest')) { $value = Crypt::decrypt($value); } return $value; } public function setAttribute($key, $value) { if (in_array($key, $this->encryptable) && Config::get('app.encrypt_data_at_rest')) { $value = Crypt::encrypt($value); } return parent::setAttribute($key, $value); } } as,

User model

并在我的<?php namespace App\Models; class User extends BaseModel implements AuthenticatableContract, AuthorizableContract, CanResetPasswordContract { use SoftDeletes; use Encryptable; protected $encryptable = ['username']; 中使用它;

username

并插入记录并成功加密username

但现在问题是,我无法使用此passwordusername无法登录

在数据库中,username似乎已加密。如果我在控制器中获得该特定用户的User::find(89)->username(例如getAttribute()),那么它会返回解密用户名(即我在创建此用户时插入的简单字符串)归因于Encryptable trait的{​​{1}}方法。

但是我无法使用Auth::attempt()方法,因为它返回false。我在使用username方法时传递未加密 passwordAuth::attempt()

有任何建议如何解决这个问题?

0 个答案:

没有答案