我有一个简单的登录,但现在已经两天找不到错误了。我在数据库中有所需的登录名和密码,但无论我在登录名中输入什么,我都会被抛出,并显示登录名或密码不正确。 我使用 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',
]);
我尝试寻找答案并使用不同的身份验证方法,但没有效果
我用
创建了用户 DB::table('users')->insert([
'email' => '[email protected]',
'name' => 'admin',
'role' => 'admin',
'password' => 'admin',
]);
但没有任何效果。但后来我把密码改成了
'password' => bcrypt('admin'),
这有效