Laravel 8 Jetstream:无法使用使用工厂和播种机播种的帐户登录

Posted

技术标签:

【中文标题】Laravel 8 Jetstream:无法使用使用工厂和播种机播种的帐户登录【英文标题】:Laravel 8 Jetstream: unable to login with the account seeded using factories and seeder 【发布时间】:2021-01-26 04:25:47 【问题描述】:

我正在开发一个 Laravel 8 项目。我注意到有几件事发生了变化,包括身份验证。我正在使用 Jetstream 进行身份验证。

我已经安装了 Jetstream,我可以在浏览器上注册和登录到路由 /register 和 /login。我现在正在做的是为了本地开发,我正在创建播种器类,以便我可以播种用户并使用这些播种用户登录以进行本地开发。但是当我使用这些帐户登录时,它总是抱怨“这些凭据与我们的记录不匹配。”。

这就是我所做的。我已经使用密码“Testing1234”在浏览器上注册了一个帐户。密码哈希保存在用户表中。我复制了密码并在 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),
        ];
    

然后我使用工厂创建了一个用户,如下所示。

User::factory()->create(['email' => 'testing@gmail.com']);

然后我尝试使用我刚刚创建的用户登录。但它总是在抱怨,“这些凭据与我们的记录不符。”。我也不能使用其他密码。甚至默认用户工厂类附带的默认密码。我的代码有什么问题,我该如何解决?

【问题讨论】:

【参考方案1】:

尝试使用

User::factory()->make([
'email' => 'testing@gmail.com',
 ]);

【讨论】:

【参考方案2】:

我终于找到问题了。

在 JetstreamServiceProvider 类中,我添加了以下代码来自定义登录流程。

Fortify::authenticateUsing(function (Request $request) 
            
        );

我的错。这就是它失败的原因。

【讨论】:

嗨,伙计,你把代码放在哪里了?能给我看看么?我现在有确切的问题。 我也是,Jetstream 坚持个人团队应该存在:(

以上是关于Laravel 8 Jetstream:无法使用使用工厂和播种机播种的帐户登录的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 8.15.0/Jetstream - 如何注册新刀片 x-jet-newblade?

如何使用 laravel 8 +jetstream + spatie 为注册用户分配角色

Laravel 8 JetStream 引导程序 4

无法将 Jetstream 包安装到 Laravel 项目

CSS 不会在 XAMPP 上的 Laravel 8 + Jetstream 中加载

Laravel 8 Jetstream Inertia 没有渲染视图组件