如何解决Laravel 8 Jetstream:无法使用使用工厂和播种机播种的帐户登录
我正在研究Laravel 8项目。我注意到,包括身份验证在内的几件事已更改。我正在使用Jetstream进行身份验证。
我已经安装了Jetstream,并且可以在浏览器上转到/ register和/ login路线进行注册和登录。我现在要做的是,为了进行本地开发,我正在创建种子类,以便可以为用户提供种子,并使用这些获得种子的用户登录进行本地开发。但是,当我使用这些帐户登录时,总是抱怨“这些凭据与我们的记录不匹配。”。
这就是我所做的。我已经在浏览器中使用密码“ Testing1234”注册了一个帐户。密码哈希保存在users表中。我复制了密码,并按如下所示在UserFactory类中使用它。
<?php
namespace Database\Factories;
use App\Models\Role;
use App\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;
class UserFactory extends Factory
{
use WithFaker;
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = User::class;
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'name' => $this->faker->name,'email' => $this->faker->unique()->safeEmail,'email_verified_at' => now(),'password' => '$2y$10$tive4vPDzIq02SVERWxkYOAeXeaToAv57KQeF1kXXU7nogh60fYO2',//Testing.1234
'remember_token' => Str::random(10),];
}
}
然后我按照如下方法使用factory创建了一个用户。
User::factory()->create(['email' => 'testing@gmail.com']);
然后,我尝试使用刚创建的用户登录。但是它总是在抱怨:“这些凭据与我们的记录不匹配。”。我也不能使用其他密码。甚至默认用户工厂类随附的默认密码。我的代码有什么问题,我该如何解决?
解决方法
尝试使用
TypeError: fs.readFileSync is not a function
,
我终于找到了问题。
在JetstreamServiceProvider类中,我添加了以下代码来自定义登录流程。
Fortify::authenticateUsing(function (Request $request) {
});
我的坏。那就是失败的原因。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。