我正在使用API身份验证的Passport包。
问题是$(b).removeClass('btn-danger btn-warning') ;
if ($(b).hasClass('btn-info')) {
$(b).removeClass('btn-success btn-warning btn-danger') ;
}
正在使用登录方法。并且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文件中写的路线
public function details()
{
$user = Auth::user();
return response()->json(['success' => $user], $this->successStatus);
}
如果我在下面尝试过,那么它也无效。
但是,如果我删除了Route::group(['middleware' => ['api']], function () {
Route::post("/login", ['uses'=>'UserController@login']);
Route::get("/details", ['uses'=>'UserController@details']);
});
,那么它将会起作用。
->middleware('auth:api')
上面的网址 Route::get('/user', function (Request $request) {
return array(
1 => "John",
2 => "Mary",
3 => "Steven"
);
})->middleware('auth:api');
我做了很多研究,但无法解决我的问题。
任何帮助将不胜感激。
由于
答案 0 :(得分:0)
您应该根据请求检查标题
Content-Type: application/json
Authorization: Bearer {{token}}