当前位置: 首页 > 知识库问答 >
问题:

改装添加带有令牌和id的标头

金慈
2023-03-14

我在获取经过身份验证的用户时遇到问题。在它之前,我得到了令牌和用户ID。现在我需要使用访问令牌和id从服务器获取用户。我有页眉格式

现在我正在尝试使用拦截器添加带有用户令牌和id的标头。

我的代码:

Interceptor interceptor = new Interceptor() {
        @Override
        public okhttp3.Response intercept(Chain chain) throws IOException {
            Request newRequest = chain.request().newBuilder()
                    .addHeader("Accept", "application/json")
                    .addHeader("authorization", token) <-??
                    .addHeader("driver_id", id) <-??
                    .build();
            return chain.proceed(newRequest);
        }
    };
    OkHttpClient.Builder okHttpBuilder = new OkHttpClient.Builder();
    okHttpBuilder.addInterceptor(interceptor);
    OkHttpClient okHttpClient = okHttpBuilder.build();

    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(BASE_URL)
            .addConverterFactory(GsonConverterFactory.create())
            .client(okHttpClient)
            .build();

接口:

@GET("driver/v1/driver")
Call<Driver> getAuthorizedDriver();

不同的变体抛出401错误,不知道做什么日志:

I/Response code: 401
I/Response message: Unauthorized`

共有2个答案

杜联
2023-03-14

尝试通过方法调用传递标头值:

@GET("driver/v1/driver")
Call<Driver> getAuthorizedDriver(@Header("authorization") String token,
                                 @Header("driver_id") Integer id);

您也不必处理这大块拦截器代码

叶修永
2023-03-14

知道了。它必须看起来像这样:

@GET("driver/v1/driver")
Call<Driver> getAuthorizedDriver(@Header("authorization") String auth);

和认证:

Call<Driver> call = apiInterface.getAuthorizedDriver("Token token=" + token + ", driver_id=" + id);
 类似资料:
  • 我目前正在尝试用服务器端stripe api创建收费。 但是我遇到了一个问题;我用两种方法来进行付款: > 用户可以使用条带元素付款 = 或者,如果用户已经在其帐户上添加了一些卡,他可以在列表中选择其中的一张 我想知道是否有办法生成一个带有卡id和客户id的令牌,以便使用这个令牌来创建收费,而不是使用卡id和客户id来对用户收费。 我已经试过了https://stripe.com/docs/api

  • 当我运行测试时,我会得到以下错误(找不到令牌或令牌为空): 我找到了一个暂时的解决方法,但它不是一个好的解决方法…

  • 我编写了一个,它在流中添加标记。 假定文本,其中是的词干,是的同义词,那么我是否构造了正确的属性表?

  • 本文件规定: Firebase ID令牌是短暂的,只能持续一个小时;刷新令牌可用于检索新的ID令牌。 我是否可以说,刷新令牌本质上同时充当客户端设备的密码和标识,并且拥有刷新令牌意味着能够检索ID令牌,从而能够作为与该刷新令牌关联的用户进行身份验证? 如果是这样,那么拥有这两个不同的令牌的目的是什么? 谢谢

  • 我目前正在尝试使用ADFS 2016认证angular 7应用程序(使用angular-oauth2-oidc)。到目前为止,它工作得很好。当我访问应用程序时,我被重定向到ADFS登录页面,在那里输入我的凭据并获得令牌。 现在,当应用程序调用web API时,它在请求头中发送访问令牌。ADFS返回的访问令牌如下所示: 问题是web API必须知道进行调用的用户的ID(因为在应用程序级别定义了一些权

  • 我正在尝试连接到FatSecret API。这是他们为oauth2授权提供的留档链接:https://platform.fatsecret.com/api/Default.aspx?screen=rapiauth2#using-token-api 我已经完成了第一步和第二步,现在我被困在第三步。我已经设法用“application/json”更新了标题,但我不确定我的调用是否包括我创建的令牌。我得