繁体   English   中英

使用laravel中的尝试从自定义防护中验证电子邮件和密码

[英]authenticate email and password from custom guard using attempt in laravel

这是我的控制器,它拥有api功能:

public function loginsub(Request $request)
{ 
   $credentials = $request->only('email', 'password');

    if(Auth::guard('sub_users')->attempt($credentials))
    { 
        $user = Auth::guard('sub_users'); 
    }
}

来自auth.php配置的警卫和提供者:我编辑了帖子并添加了提供者部分

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

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

         'sub_users' => [
            'driver' => 'passport',
            'provider' => 'sub_users'
        ],
    ],

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


    ],

我收到此错误:

“message”:“方法尝试不存在。”,“status_code”:500

我正在尝试使用子用户模型登录:

<?php

namespace App;

use Laravel\Passport\HasApiTokens;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class sub_users extends Authenticatable
{
    use HasApiTokens, Notifiable;

   /**
    * The attributes that are mass assignable.
    *
    * @var array
    */
    protected $fillable = [
        'name', 'email', 'password','type','login_ip',
    ];

    /**
    * The attributes that should be hidden for arrays.
    *
    * @var array
    */
    protected $hidden = [
        'password', 'remember_token',
    ];    
}

我也尝试过check()而不是尝试,但事先感谢它没有工作

public function loginsub(Request $ request){$ credentials = $ request-> only('email','password');

if(Auth::guard('users')->attempt($credentials))
{ 
    $user = Auth::guard('users'); 
}

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM