【发布时间】:2021-03-10 09:26:22
【问题描述】:
我正在尝试为网站制作自定义身份验证角色,我关注了另一个堆栈溢出帖子,似乎可以让它工作,但我的总是失败,我知道信息存在,因为我将信息转储并在一次身份验证后将信息消亡到屏幕上: :guard 失败。问题是即使信息存在 auth guard 也失败了
if (Auth::guard('Admin')->attempt(['Username' => $Request->input('UName'), 'Password' => $Request->input('Password')]))
信息经过验证和批准并设法通过
if (Admins::where('Username', $Request->input('UName'))->exists()) {
$AdminDetails = Admins::Where('Username', $Request->input('UName'))->first();
if(Hash::check($Request->input('Password'), $AdminDetails->Password)){
//user details are correct
}
}
我已经使用户和管理员都可以验证上面的代码尝试授权管理员,我还更改了 config/auth.php 文件,如下所示
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
'Admin' => [
'driver' => 'session',
'provider' => 'Admin',
],
'User' => [
'driver' => 'session',
'provider' => 'User',
],
],
'providers' => [
'User' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
],
'Admin' => [
'driver' => 'eloquent',
'model' => App\Models\Admins::class,
]
// 'users' => [
// 'driver' => 'database',
// 'table' => 'users',
// ],
],
模型位于正确的命名空间中,如下所示,管理员可验证
<?php
namespace App\Models;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class Admins extends Authenticatable
{
use Notifiable;
protected $guard = 'Admin';
protected $fillable = [
'FName', 'LName', 'Email', 'Password', 'Username'
];
protected $hidden = [
'password'
];
}
并且用户可验证
<?php
namespace App\Models;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class Users extends Authenticatable
{
use Notifiable;
protected $guard = 'User';
protected $fillable = [
'FullName', 'Email', 'CompanyName','ReferedBy','PhoneNumber','MemberStatus','CustomMessage',
];
protected $hidden = [
'password', 'remember_token',
];
}
Laravel 7 不显示任何错误或任何内容,但尝试登录用户的 if 语句失败
管理模型的迁移也是
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateAdminsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('admins', function (Blueprint $table) {
$table->id();
$table->string('Username');
$table->string('FName');
$table->string('LName');
$table->string('Email');
$table->string('Password');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('admins');
}
}
我知道在一个问题中包含大量信息,但我知道这都与问题相关。 感谢您提供的任何帮助。
【问题讨论】:
标签: php laravel authentication roles laravel-7