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."}
を与えられて、私は多くの研究をしましたが、私の問題を解決することができませんでし。
ご協力いただきますようお願い申し上げます。
おかげ
にヘッダを確認する必要があり、あなたのルートを投稿も –
@MayankPandeyz、私は私のルートを更新して言及しています。 –