无法使用 SQLite 数据库在 Laravel PHP 中验证用户身份

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

我有一个简单的登录,但现在已经两天找不到错误了。我在数据库中有所需的登录名和密码,但无论我在登录名中输入什么,我都会被抛出,并显示登录名或密码不正确。 我使用 sqllite laravel-10 php AuthController

class AuthController extends Controller
{
    public function showLoginForm()
    {
        return view("auth.login");
    }
    public function login(Request $request)
    {
        $data = $request->validate([
            "email" => ["required", "email", "string"],
            "password" => ["required"]
        ]);

        if(auth("web")->attempt($data)) {
            return redirect(route("home"));
        }
        return redirect(route("login"))->withErrors(["email" => "wrong data"]);
    }


    public function logout()
    {
        auth("web")->logout();

        return redirect(route("login"));
    }
}

配置/auth.php

    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
    ],
    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\Models\User::class,
        ],
    ],

web.php

Route::get('/login', [AuthController::class, 'showLoginForm'])->name('login');
Route::post('/login_process', [AuthController::class, 'login'])->name('login_process');

应用程序/模型/User.php

class User extends Authenticatable
{
    use HasFactory;
    protected $fillable = [
        'email',
        'name',
        'role',
        'status',
        'password',
    ];
}

当我从数据库输入正确的数据时,它只是给出数据不正确的错误。 我还将管理员用户添加到数据库

       DB::table('users')->insert([
        'email' => '[email protected]',
        'name' => 'admin',
        'role' => 'admin',
        'password' => 'admin',
    ]);

我尝试寻找答案并使用不同的身份验证方法,但没有效果

php laravel sqlite authentication authorization
1个回答
0
投票

我用

创建了用户
       DB::table('users')->insert([
    'email' => '[email protected]',
    'name' => 'admin',
    'role' => 'admin',
    'password' => 'admin',
]);

但没有任何效果。但后来我把密码改成了

'password' => bcrypt('admin'),

这有效

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