2017-09-22 12 views
1

私はAPI認証のPassportパッケージを使用しています。Laravel 5.5 - Passportを使用したApiが認証されなかった

問題は、Auth::attemptがログイン方法に取り組んでいます。 Auth::user()も動作していますが、他の方法では動作せず、NULLを返します。

私のログイン方法最初のログインで

私はAuth::check()による認証をチェック - それは動作しませんでした。

public function login(Request $request) { 
     $data = json_decode($request->getContent(), TRUE); 
     if(!empty($data)) { 
      if (Auth::check()) { 
       return response()->json(['message'=>'Already Authenticated'], 200); 
      } 
      else 
      { 
       $email = $data['email']; 
       $pass = $data['password']; 
       $credentials = array('email' => $email, 'password' =>$pass); 
       if(Auth::attempt($credentials)){  
        $user = Auth::user(); // here it work 
        $success['token'] = $user->createToken('MyApp')->accessToken; 
        return response()->json(['user' => $user, 'success' => $success], $this->successStatus); 
       } 
       else { 
        return response()->json(['error'=>'Unauthorised'], 401); 
       } 
      } 
     } 
    } 

ここで認証が機能しませんでした。私は以下のようにしようとした場合、私は私のapi.phpファイル

Route::group(['middleware' => ['api']], function() { 
    Route::post("/login", ['uses'=>'[email protected]']); 
    Route::get("/details", ['uses'=>'[email protected]']); 
}); 

に書かれている私のルートを与えている下

public function details() 
    { 
     $user = Auth::user(); 
     return response()->json(['success' => $user], $this->successStatus); 
    } 

、その後もそれがうまくいきませんでした。 しかし、もし私が->middleware('auth:api')を削除したら、それはうまくいくでしょう。 URL上記

Route::get('/user', function (Request $request) { 
    return array(
    1 => "John", 
    2 => "Mary", 
    3 => "Steven" 
    ); 
})->middleware('auth:api'); 

{"error":"Unauthenticated."}

を与えられて、私は多くの研究をしましたが、私の問題を解決することができませんでし。

ご協力いただきますようお願い申し上げます。

おかげ

+0

にヘッダを確認する必要があり、あなたのルートを投稿も –

+0

@MayankPandeyz、私は私のルートを更新して言及しています。 –

答えて

0

あなたはあなたの要求

Content-Type: application/json 
Authorization: Bearer {{token}} 
関連する問題