【发布时间】:2020-08-20 00:10:52
【问题描述】:
所以我没有使用 Laraval 的经验,并且一直在尝试制作一个不使用默认表 Users 的 Auth。 我遵循了一些教程并最终得到了一个自定义身份验证,它至少不会给出不正确的数据库数据库或类似的错误,但是在尝试登录时不断给出错误密码或用户名的错误。
我尝试使用的表名为 usuaris,用于登录的列是 nomUsuari 和 contrasenya。
这是我的自定义身份验证文件:
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class customAuth extends Authenticatable
{
use Notifiable;
protected $table = 'usuaris';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'nomUsuari','contrasenya'
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'contrasenya',
];
public function getAuthPassword()
{
return $this->contrasenya;
}
}
Auth.php 配置文件:
'defaults' => [
'guard' => 'web',
'passwords' => 'usuaris',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
'web' => [
'driver' => 'session',
'provider' => 'usuaris',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'usuaris' => [
'driver' => 'eloquent',
'model' => App\customAuth::class,
],
// 'users' => [
// 'driver' => 'database',
// 'table' => 'users',
// ],
],
'passwords' => [
'users' => [
'provider' => 'users',
'table' => 'password_resets',
'expire' => 60,
'throttle' => 60,
],
'usuaris' => [
'provider' => 'usuaris',
'table' => 'password_resets',
'expire' => 60,
],
],
以及要验证的功能:
function checklogin(Request $request){
$this->validate($request, [
'nomUsuari' => 'required',
'contrasenya' => 'required'
]);
$user_data = array(
'nomUsuari' => $request->get('nomUsuari'),
'password' => $request->get('contrasenya')
);
//print_r($user_data);
if(Auth::attempt($user_data)){
return redirect('successlogin');
} else {
return back()->with('error', 'Datos incorrectos');
}
}
【问题讨论】:
标签: laravel