【问题标题】:Retrofit Authorization is not working with variable token改造授权不适用于变量令牌
【发布时间】:2022-11-18 04:35:38
【问题描述】:

我正在尝试使用 Retrofit 将 Token 添加到我的 Header 中,如下所示:

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("Authorization", "eyJW********") // 硬编码令牌

请帮助我该怎么办?

【问题讨论】:

  • 你可能需要这个计划?例如 Basic、Bearer...有关您使用位置的更多信息将很有用

标签: android authorization retrofit token amazon-cognito


【解决方案1】:

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

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();

没有令牌类型改造将无法识别标题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-21
    • 2014-11-08
    • 2016-03-24
    • 1970-01-01
    • 2021-01-01
    • 1970-01-01
    • 2017-07-09
    • 1970-01-01
    相关资源
    最近更新 更多