如何在androidstudio中使用刷新令牌?

9fkzdhlc  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(239)

我需要通过发送一个refreshtoken来捕获一个过期的令牌,作为回报,获取新的访问令牌和刷新令牌。下面我列出了我将要使用的代码。它写得不完整,因为我不完全理解一切。

@FormUrlEncoded
@POST("/api/o/token/")
Call<TokenModel> getToken(
        @Field("username") String username,
        @Field("password") String password,
        @Field("client_id") String clientId,
        @Field("client_secret") String clientSecret,
        @Field("grant_type") String grantType
);
@FormUrlEncoded
@POST("/api/o/token/")
Call<TokenModel> getNewToken(
        @Field("refresh_token") String refreshToken,
        @Field("client_id") String clientId,
        @Field("client_secret") String clientSecret,
        @Field("grant_type") String grantType
);

@GET("/api/users/profile")
Call<UserProfile> getProfile();

我在不明白的地方打了问号。我只是没和哈德搞清楚。我应该在逗号后面加什么?服务器接收新令牌所需的一切(在我的例子中,它是string refreshtoken、string clientid、string clientsecret、string granttype)还是不是?

OkHttpClient client = new OkHttpClient.Builder()
            .addInterceptor(logging)
            .addInterceptor(new AccessTokenInterceptor(preferences))

            .addInterceptor(new Interceptor() {
                @NotNull
                @Override
                public Response intercept(@NotNull Chain chain) throws IOException {
                    Request original = chain.request();
                    Request request = original.newBuilder()
                            .header("Authorization", ?)
                            .method(original.method(), original.body())
                            .build();

                    Response response =  chain.proceed(request);
                    Log.d("MyApp", "Code : "+response.code());
                    if (response.code() == 401){
                        ?
                        return response;
                    }
                    return response;
                }
            })
            .build();

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题