Php 在Laravel中创建自定义身份验证

Php 在Laravel中创建自定义身份验证,php,laravel,authentication,laravel-5.3,Php,Laravel,Authentication,Laravel 5.3,我有一个用核心php开发的项目,现在我在这方面创建了一些api 我能够在laravel中获取所有数据,但现在我在登录验证方面有点问题 public function postLogin(Request $request) { // print_r($request->all()); $data['email']=$request->email; $data['password']=$request->pa

我有一个用核心php开发的项目,现在我在这方面创建了一些api 我能够在laravel中获取所有数据,但现在我在登录验证方面有点问题

  public function postLogin(Request $request) {

       //    print_r($request->all());

           $data['email']=$request->email;
            $data['password']=$request->password;
        $response=  ApiModel::userLogin($data);

      //  Auth::login($response[0]);
     //   Auth::loginUsingId($response[0]->id);
       echo "<pre>";
     print_r($response[0]);

    }
有谁能帮助我如何使用api保持用户会话

错误

SessionGuard.php第408行中的ErrorException:参数1传递给 Illumb\Auth\SessionGuard::login()必须是的实例 Illumb\Contracts\Auth\Authenticatable,给定的stdClass实例, 叫来 D:\xampp\htdocs\collab\vendor\laravel\framework\src\illumb\Auth\AuthManager.php 第294行,并定义


您可以使用
Auth::trunt(['fieldname'=>'value','someother'=>'anothervalue'])

您需要在
config/auth.php
中定义正确的身份验证保护信息。默认情况下,
Auth::login()
方法要求您传递一个
用户
模型实例,并且该模型应该实现
illumb\Contracts\Auth\Authenticatable

您应该将默认的guard provider设置为使用
数据库
驱动程序而不是eloquent,并设置正确的表名。然后可以使用
Auth::loginUsingId()
使用用户的id登录用户


但是,如果您不想将数据库连接到Laravel,那么只需依赖API响应并基于此执行操作即可。您不能以这种方式强制进行经过身份验证的会话。

在api中保留会话是什么意思?如果您使用REST,就不能有会话,因为它没有状态。我的意思是,我正在从laravel向api传递数据。然后,从api响应中,我将获得用户的所有数据。这需要保留在auth user会话中。您可以共享所用的用户模型吗?还有
piModel::userLogin()
方法。@Sandesh。我没有用户模型,因为我使用的是api及其核心phpThanks。但我正在从laravel向api传递数据。然后从api响应中,我获得了用户的所有数据。需要保留在验证用户会话中的数据没有用于laravel的数据库?虽然此代码片段可以解决问题,确实有助于提高你的文章质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。
 Auth::login($response[0]);
Auth::loginUsingId($response[0]->id);