首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试($credentials)总是返回false

尝试($credentials)总是返回false
EN

Stack Overflow用户
提问于 2019-07-18 22:19:49
回答 2查看 681关注 0票数 0

每次我试图使用Postman连接到我的API时,我都会获得假凭据,尽管数据库中也有相同的凭证。

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

AuthController

代码语言:javascript
复制
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()
    ]);
}

auth.php

代码语言:javascript
复制
'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,
    ],
],

模型

代码语言:javascript
复制
    use HasApiTokens, Notifiable;

    protected $fillable = [
        'name', 'email', 'password',
    ];

    protected $hidden = [
        'password', 'remember_token',
    ];

api.php

代码语言:javascript
复制
Route::post('login', 'Auth\AuthController@login')->name('login');
EN

回答 2

Stack Overflow用户

发布于 2019-07-19 03:40:12

试试这个:

代码语言:javascript
复制
$credentials = [
 'email' => $request->email,
 'password' => $request->password
 ];
  if(!Auth::attempt($credentials))
    return response()->json([
        'message' => 'Unauthorized'
    ], 401);     
票数 0
EN

Stack Overflow用户

发布于 2019-07-19 06:42:40

我的模型看起来像这样,非常类似于user模型。

代码语言:javascript
复制
    use HasApiTokens, Notifiable;

    protected $fillable = [
        'name', 'email', 'password',
    ];

    protected $hidden = [
        'password', 'remember_token',
    ];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57103300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档