Laravel API,从 android/retrofit 调用时获得 401 未授权

Laravel API, getting 401 unathorized when calling from android/retrofit

我正在构建一个 android 应用程序,使用 laravel 和护照进行身份验证,我的注销方法如下所示

public function logout(Request $request){

        $accessToken = Auth::user()->token();

        DB::table('oauth_refresh_tokens')
            ->where('access_token_id', $accessToken->id)
            ->update(['revoked' => true]);

        $accessToken->revoke();

        return response()->json([], 204);

    }

我用邮递员对其进行了测试并且它有效,它返回 204,没有应有的内容。

Postman screenshot

但是当我尝试从 android 应用调用它时,它总是返回 401,未授权消息

我的所有其他 POST 方法都工作正常,这是我从 android 使用 retrofit

的调用
private void logout() {

        tokenManager = TokenManager.getInstance(getSharedPreferences("prefs",MODE_PRIVATE));
        Log.i("tokenLogout",tokenManager.getToken().getAccessToken());
        call = service.logout(tokenManager.getToken());
        call.enqueue(new Callback<AccessToken>() {
            @Override
            public void onResponse(Call<AccessToken> call, Response<AccessToken> response) {

                Log.i(TAG, "logout response: " + response.code());
                //startActivity(new Intent(mapActivity.this,loginActivity.class));
            }

            @Override
            public void onFailure(Call<AccessToken> call, Throwable t) {
                Log.i(TAG, "logout failed");
            }
        });
    }

这是我的 ApiService 接口

@POST("logout")
        @FormUrlEncoded
        Call<AccessToken> logout(@Field("access_token") AccessToken accessToken);

尝试使用

Call<AccessToken> logout(@Header("Authorization") String token,@Field("access_token") AccessToken accessToken);

在你的代码中使用

call = service.logout("Bearer : XXXXX",tokenManager.getToken());

我建议您使用 HttpLoggingInterceptor 以查看有关您的请求的所有日志。 url: https://github.com/square/okhttp/tree/master/okhttp-logging-interceptor