okhttp - 使用没有代理服务器的 OkHttpClient 进行抢先式身份验证
问题描述
根据https://square.github.io/okhttp/3.x/okhttp/,我认为只有在我们有代理服务器的情况下才能进行抢先式身份验证。
我们有一个资源/源服务器,它使用 Oauth 令牌授权客户端。
我们已经实现了授权 OkHttp Authenticator https://square.github.io/okhttp/3.x/okhttp/okhttp3/Authenticator.html。但是,客户端总是在没有授权标头的情况下发出请求,然后添加它。我们可以在单个请求中使用身份验证器并仍然向我们的资源服务器提供授权标头吗?我们可以预测挑战。但是,不确定是否可以避免在没有授权标头的情况下向服务器发出请求。
我们可以使用拦截器抢先添加标头。
是否可以在没有代理服务器的情况下使用 Authenticator 并抢先添加标头?
解决方案
您可以使用拦截器来实现抢先式身份验证。这为您提供了充分的灵活性。
你是对的,纯粹使用 Authenticator,同时总是响应失败的 401。
因此,像okhttp-digest这样的库会缓存身份验证方法以抢先实现。
推荐阅读
- angular - 重新初始化组件时,AGM 是否保留 Google Map 的会话?
- amazon-web-services - 无需更改客户端代码即可轮换 IAM 用户访问密钥
- javascript - 如何更改 Ant Design 卡片组件的标题字体?
- centos - MarkLogic Server 安装 - 服务器安装页面的访问被拒绝 302
- python - 如何修复pytorch'RuntimeError:类型为torch.cuda.LongTensor但发现类型为torch.LongTensor的预期对象'
- sql-server - 从第一个表中获取所有数据,即使连接表中不存在连接条目
- c++ - 如何解决索引和排序问题
- node.js - 如何从节点 js 中的特定路径执行命令?
- binance - 如何查找 Binance websocket API 的符号名称
- angular - 关闭模态 - 使用 Angular 的 Ionic 4