【问题标题】:How to use multiple authentication passwords in Laravel?如何在 Laravel 中使用多个身份验证密码?
【发布时间】:2017-11-18 09:51:48
【问题描述】:

auth.php 文件有如下代码

'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],

        'api' => [
            'driver' => 'passport',
            'provider' => 'users',
        ],

        'apidriver' => [
            'driver' => 'passport',
            'provider' => 'drivers',
        ],
    ],


    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\User::class,
        ],
        'drivers' => [
            'driver' => 'eloquent',
            'model' => App\Models\Driver::class,
        ],

    ],

这是驱动程序的验证码

  if (Auth::guard('apidriver')->attempt(['email'=>request('email'),
  'password'=>request('password')])) {

  $driver=Auth::guard('apidriver')->user();

  $success['token'] =  $driver->createToken('Pizza App')->accessToken;

  return response()->json(['success' => $success], $this->successStatus);

}else{

return response()->json(['errorrr'=>'Unauthorised'], 401);

  }

并在访问时产生如下错误

调用未定义的方法 Illuminate\Auth\RequestGuard::attempt()

当用户验证码正常工作时

【问题讨论】:

    标签: php laravel authentication laravel-5 laravel-passport


    【解决方案1】:

    您没有正确解析请求参数,
    替换这一行

    if(Auth::guard('apidriver')>attempt(['email'=>request('email'),'password'=>request('password')]))
    

    用这个:

    if (Auth::guard('apidriver')->attempt(['email'=>request('email'),'password'=>request('password')])) 
    

    还要检查您是否在班级顶部调用了Illuminate\Http\Request;

    【讨论】:

      猜你喜欢
      • 2016-07-21
      • 2018-09-11
      • 2017-02-08
      • 2021-02-08
      • 2013-07-31
      • 2016-10-20
      • 2018-07-05
      • 2015-05-25
      • 2014-04-28
      相关资源
      最近更新 更多