我有一个web api和MVC项目,
web api部署在api.domain.com MVC应用程序部署在domain.com
我最近在API上获得了某些方法,它需要身份验证(授权类型:密码)。
我希望在MVC应用程序后面的代码中传递令牌而不是javascript,以保证其安全并远离某人嗅探角度js流量。
我做了一些研究,我应该使用HttpClient类。如果是这种情况,该客户端如何处理刷新令牌?现在令牌在8小时后到期,我知道还会发出刷新令牌,但是HttpClient会自动处理这个,还是我必须编写自己的逻辑来检查请求是否因过期令牌而被拒绝。
谢谢!
答案 0 :(得分:2)
我做了一些研究,我应该使用HttpClient类。如果是这样的话 这个客户端如何处理刷新令牌?
正如其名称所示,HttpClient
类是HTTP协议客户端。它完全不了解OAuth 2.0,在这方面也没有关于刷新令牌的信息。所以你应该自己写这个逻辑。基本上你应该遵循的流程是这样的:
Authorization
标头字段中包含您现有的OAuth Bearer令牌。答案 1 :(得分:1)
我认为使用HttpMessageHandler可以帮助你。
这种连接到HttpClient的方法是使用带有HttpMessagHandler的HttpClient构造函数:
1://创建客户端并在消息路径中插入OAuth消息处理程序
2://在请求中插入OAuth身份验证标头
3:HttpClient client = new HttpClient(new OAuthMessageHandler(new HttpClientHandler()));
HttpClientHandler是HttpClient提供的默认“网络”处理程序,它实际发送请求并从网络接收响应。
请参阅此页面以获取完整的详细信息:https://blogs.msdn.microsoft.com/henrikn/2012/02/16/extending-httpclient-with-oauth-to-access-twitter/