猿问

Auth::attempt($credentials) 总是返回 false

每次我尝试使用 Postman 连接到我的 API 时,我都会收到错误的凭据,尽管数据库中的凭据相同。


我试图将数据库中密码列的大小更改为 60。我打印了凭据以检查它们是否正确。


身份验证控制器


public function login(Request $request) {

    $request->validate([

        'email' => 'required|string|email',

        'password' => 'required|string',

    ]);

    $credentials = request(['email', 'password']);

    if(!Auth::attempt($credentials))

        return response()->json([

            'message' => 'Unauthorized'

        ], 401);

    $user = $request->user();

    $tokenResult = $user->createToken('Personal Access Token');

    $token = $tokenResult->token;

    if ($request->remember_me)

        $token->expires_at = Carbon::now()->addWeeks(1);

    $token->save();

    return response()->json([

        'access_token' => $tokenResult->accessToken,

        'token_type' => 'Bearer',

        'expires_at' => Carbon::parse(

            $tokenResult->token->expires_at

        )->toDateTimeString()

    ]);

}

身份验证文件


'defaults' => [

    'guard' => 'web',

    'passwords' => 'users',

],


'guards' => [

    'web' => [

        'driver' => 'session',

        'provider' => 'gestionnaires',

    ],


    'api' => [

        'driver' => 'passport',

        'provider' => 'clients',

        'hash' => false,

    ],

],


'providers' => [

    'users' => [

        'driver' => 'eloquent',

        'model' => App\User::class,

    ],


    'gestionnaires' => [

        'driver' => 'eloquent',

        'model' => App\Gestionnaire::class,

    ],


    'clients' => [

        'driver' => 'eloquent',

        'model' => App\Client::class,

    ],


    // 'users' => [

    //     'driver' => 'database',

    //     'table' => 'users',

    // ],

],


'passwords' => [

    'users' => [

        'provider' => 'users',

        'table' => 'password_resets',

        'expire' => 60,

    ],

],

模型


    use HasApiTokens, Notifiable;


    protected $fillable = [

        'name', 'email', 'password',

    ];


    protected $hidden = [

        'password', 'remember_token',

    ];

api.php


Route::post('login', 'Auth\AuthController@login')->name('login');


吃鸡游戏
浏览 298回答 2
2回答

幕布斯7119047

尝试这个 :$credentials = [ 'email' => $request->email, 'password' => $request->password ];  if(!Auth::attempt($credentials))    return response()->json([        'message' => 'Unauthorized'    ], 401);     

皈依舞

我的模型看起来像这样,与user模型非常相似。    use HasApiTokens, Notifiable;    protected $fillable = [        'name', 'email', 'password',    ];    protected $hidden = [        'password', 'remember_token',    ];
随时随地看视频慕课网APP
我要回答