android 改型授权不适用于可变令牌

hjzp0vay  于 2022-11-20  发布在  Android
关注(0)|答案(1)|浏览(166)

我正尝试使用Retrofit将令牌添加到我的标头,如下所示:

public static Retrofit getRetrofitInstanceForAPIGateway(String token) {
    Log.e("RetrofitClient", "Token: " + token);

    OkHttpClient client = new OkHttpClient.Builder().addInterceptor(chain -> {
        Request newRequest  = chain.request().newBuilder()
                .addHeader("Authorization", token) //Token passed from view controller
                .build();
        return chain.proceed(newRequest);
    }).build();

    if (retrofit_api == null) {
        retrofit_api = new Retrofit.Builder()
                .client(client)
                .baseUrl(API_GATEWAY_BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
    }
    return retrofit_api;
}

我得到403错误,但是,如果我硬编码令牌与现有的令牌字符串如下,它是工作的预期。
.addHeader(“授权”,“eyJW*******”)//对令牌进行硬编码
请帮帮忙该怎么办?

c7rzv4ha

c7rzv4ha1#

您需要在标头上指定令牌类型,请按如下所示更改代码

OkHttpClient client = new OkHttpClient.Builder().addInterceptor(chain -> {
    Request newRequest  = chain.request().newBuilder()
            .addHeader("Authorization", "Bearer $token") //Token passed from view controller
            .build();
    return chain.proceed(newRequest);
}).build();

没有令牌类型的改进将不能识别报头。

相关问题