当前位置: 首页 > 知识库问答 >
问题:

多重身份验证登录错误

廉宇
2023-03-14

我正在进行多重身份验证。我的html" target="_blank">前端有一个带有卡号和密码的登录表单。在auth.php中

return [
        'multi' => [
            'users' => [
                'driver' => 'eloquent',
                'model'  => App\User::class,
                'table'  => 'users'
            ],
            'frontendUsers' => [
                'driver' => 'eloquent',
                'model'  => App\loginModel::class,
                'table'  => 'frontend_users'
            ]
         ],
         'password' => [
                'email' => 'emails.password',
                'table' => 'password_resets',
                'expire' => 60,
            ],
        ];

在route.php中

Route::post('login','auth\loginController@postLogin');

在logincontroller中,

public function postLogin(Request $request){
....
    // attempt to do the login
    if (\Auth::attempt('frontendUsers', ['cardno' => '111111', 'password' => '999087787'])) {
           echo "login";
    }
    else {
            echo "failed";
    }
}

在loginModel.php中

<?php namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Auth\Authenticatable;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
class loginModel extends Model {

    /**
     * The database table used by the model.
     *
     * @var string
     */
    protected $table    = 'frontend_users';
    //public $timestamps    = false;

 }

当我尝试登录时,我收到此错误

EloquentUserProvider.php第110行中的错误异常:传递给Illumate\Auth\EloquentUserProvider的参数1::validateCreentials()必须是Illumate\合同\Auth\Authentiable的实例,给出了App\loginModel的实例,在C:\xampp\htdocs\elitecard\供应商\laravel\框架\src\Illumate\Auth中调用\Guard.php第390行并定义

共有2个答案

张啸
2023-03-14

在模型loginModel中,尝试使用名为“Authenticatable”的特性,或者改用用户模型。

巫马正卿
2023-03-14

您必须在您的模型中实现契约照明\合同\Auth\身份验证,并使用trait照明\Auth\身份验证。要在类中使用trait,必须在类中编写use语句。你的loginModel的开头应该是这样的:

<?php namespace App;

use Illuminate\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;

class loginModel extends Model implements AuthenticatableContract, CanResetPasswordContract {

    use Authenticatable, CanResetPassword;

    /**
     * The database table used by the model.
     *
     * @var string
     */
    protected $table = 'frontend_users';
 类似资料:
  • 使用,https://github.com/firebase/FirebaseUI-Android/tree/master/codelabs/chat作为登录的参考,我在键入时似乎遇到了问题 我只能键入Auth的提供者,而不能键入,为什么会这样,它提示我键入社会提供者。

  • 当使用Firebase身份验证匿名帐户时,它偶尔会在系统中创建一个新的用户ID,有时它会使用相同的用户ID。我真的希望每次都能创建相同的用户ID,这样匿名用户仍然可以在应用程序中维护相同的进度/数据。这实际上是我开始使用Firebase的原因。即使在重新启动应用程序等之后,我如何始终维护一个匿名帐户来保持相同的用户ID? 我希望用户每次以访客身份玩游戏时都能获得相同的ID。我看到有些应用程序在卸载

  • 我使用Laravel 5.2。我想问一个问题。如何更改重定向登录表单在laravel当我们已经做登录?我使用的是来自Php artisan make: auth的auth。 我已经登录并重定向到localhost:8000/admin 然后我再次打开localhost:8000/登录。它将重定向到“/”或localhost:8000/ 我的问题是如何将“/”更改为“/”管理员“?因此,即使我已经登

  • 本文向大家介绍firebase-authentication Google Plus登录身份验证,包括了firebase-authentication Google Plus登录身份验证的使用技巧和注意事项,需要的朋友参考一下 示例 使用Plus登录验证用户 onCreate onStart() 获取资料信息 使用Firebase进行身份验证, onActivityResult 登出      

  • 问题内容: 我正在开发Flask应用程序,并使用Flask-security进行用户身份验证(反过来又在下面使用Flask-login)。 我有一条需要身份验证的路由。我正在尝试编写一个单元测试,该测试对经过身份验证的用户返回适当的响应。 在单元测试中,我正在创建一个用户并以该用户身份登录,如下所示: 在测试内返回正确的用户。但是,请求的视图始终返回的。 所述路线定义为: 我可以肯定我只是不完全了

  • 我用Spring Security做了一个概念验证,以便使用PRE_AUTH_FILTER过滤器执行预认证。它工作正常,但我想知道如果这个过滤器不起作用,我是否可以重定向到登录页面,因为我得到HTTP 403。< br >我的意思是,如果初始请求的头中不包含SM_USER字段,我如何重定向到登录页面?我需要考虑这两种情况(当它包含字段- SM_USER -和不包含时),但我无法让它工作。有什么想法