Laravel 8 Jetstream:无法使用使用工厂和播种机播种的帐户登录
Laravel 8 Jetstream: unable to login with the account seeded using factories and seeder
我正在做一个 Laravel 8 项目。我注意到有几件事发生了变化,包括身份验证。我正在使用 Jetstream 进行身份验证。
我已经安装了 Jetstream,我可以在浏览器上到路由 /register 和 /login 注册和登录。我现在正在做的是,为了本地开发,我正在创建播种机 class 以便我可以播种用户并使用这些播种用户登录以进行本地开发。但是当我使用这些帐户登录时,总是抱怨“这些凭据与我们的记录不匹配”。
这就是我所做的。我已经使用密码“Testing1234”在浏览器上注册了一个帐户。密码哈希保存在用户 table 中。我复制了密码并在 UserFactory class 中使用它,如下所示。
<?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' => 'y$tive4vPDzIq02SVERWxkYOAeXeaToAv57KQeF1kXXU7nogh60fYO2', //Testing.1234
'remember_token' => Str::random(10),
];
}
}
然后我使用 factory 创建了一个用户,如下所示。
User::factory()->create(['email' => 'testing@gmail.com']);
然后我尝试使用我刚刚创建的用户登录。但它总是抱怨,“这些凭证与我们的记录不符”。我也不能使用其他密码。甚至默认用户工厂自带的默认密码class。我的代码有什么问题,我该如何解决?
尝试使用
User::factory()->make([
'email' => 'testing@gmail.com',
]);
终于找到问题了
在 JetstreamServiceProvider class 中,我添加了以下代码来自定义登录流程。
Fortify::authenticateUsing(function (Request $request) {
});
我的错。这就是它失败的原因。
我正在做一个 Laravel 8 项目。我注意到有几件事发生了变化,包括身份验证。我正在使用 Jetstream 进行身份验证。
我已经安装了 Jetstream,我可以在浏览器上到路由 /register 和 /login 注册和登录。我现在正在做的是,为了本地开发,我正在创建播种机 class 以便我可以播种用户并使用这些播种用户登录以进行本地开发。但是当我使用这些帐户登录时,总是抱怨“这些凭据与我们的记录不匹配”。
这就是我所做的。我已经使用密码“Testing1234”在浏览器上注册了一个帐户。密码哈希保存在用户 table 中。我复制了密码并在 UserFactory class 中使用它,如下所示。
<?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' => 'y$tive4vPDzIq02SVERWxkYOAeXeaToAv57KQeF1kXXU7nogh60fYO2', //Testing.1234
'remember_token' => Str::random(10),
];
}
}
然后我使用 factory 创建了一个用户,如下所示。
User::factory()->create(['email' => 'testing@gmail.com']);
然后我尝试使用我刚刚创建的用户登录。但它总是抱怨,“这些凭证与我们的记录不符”。我也不能使用其他密码。甚至默认用户工厂自带的默认密码class。我的代码有什么问题,我该如何解决?
尝试使用
User::factory()->make([
'email' => 'testing@gmail.com',
]);
终于找到问题了
在 JetstreamServiceProvider class 中,我添加了以下代码来自定义登录流程。
Fortify::authenticateUsing(function (Request $request) {
});
我的错。这就是它失败的原因。