2017-06-02 114 views
-1

我有一個在覈心php中開發的項目。現在我已經創建了幾個API。 我能夠獲取laravel中的所有數據,但現在我遇到了登錄身份驗證的問題。在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]); 

    } 

我想創建身份驗證會話,但它給錯誤。我曾嘗試以下方法,但它似乎沒有工作

Auth::login($response[0]); 
Auth::loginUsingId($response[0]->id); 

任何一個可以幫助我如何使用API​​中SessionGuard.php線408

錯誤

ErrorException保持用戶會話:傳遞給 照亮\身份驗證\ SessionGuard ::登錄(參數1)必須是 照亮\合同實例\驗證\可驗證,stdClass的實例給出 稱爲 d:\ XAMPP \ htdocs中\ \協同合作已經ndor \ laravel \框架的\ src \照亮\身份驗證\ AuthManager.php 上線294和定義

+0

在api中保留會話是什麼意思?如果您使用休息,則不會有會話,因爲它沒有狀態。 –

+0

我的意思是我從laravel.then傳遞數據給api,然後從api響應中獲取user.that的所有數據,需要保留在auth用戶會話中 – vision

+0

您可以分享使用的用戶模型嗎?還有'piModel :: userLogin()'方法。 – Sandeesh

回答

0

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

+0

謝謝。但我傳遞數據到api從laravel.then從API響應我得到的user.that需要保持身份驗證的所有數據用戶會話 – vision

+0

因此沒有數據庫爲您的laravel? – Demonyowh

+0

no.dataBASE只適用於核心PHP – vision

0

您需要config/auth.php定義正確的權威性後衛信息。 Auth::login()方法預計默認通過User模型實例,此模型應實現Illuminate\Contracts\Auth\Authenticatable

您應該設置默認保護提供程序以使用database驅動程序而不是雄辯,並設置正確的表名稱。然後,您可以使用Auth::loginUsingId()使用其ID登錄用戶。

但是,如果您不想將數據庫連接到Laravel,那麼只需依賴API響應並根據該響應執行操作。您無法以這種方式強制驗證會話。

相關問題