我正在尝试使用JWT来保护使用C#编写的WEB API,但我还是挂了几件事.根据我的理解,流程应该是这样的:
假设上述内容是正确的(如果不是,请告诉我),我无法理解以下内容.
一旦Web API验证了用户名/密码并创建了JWT,JWT如何被传回?我以某种方式将它添加到HttpResponseMessage对象?
通常的做法是成功,来自服务的响应具有200 OK响应头中的状态代码,以及响应主体中的令牌相关数据
200 OK
Content-Type: application/json;charset=UTF-8
{
"access_token": "NgCXRK...MzYjw",
"token_type": "Bearer",
"expires_at": 1372700873,
"refresh_token": "NgAagA...Um_SHo"
}
Run Code Online (Sandbox Code Playgroud)
客户端应用程序应如何通过JWT?这是附加到URL的JSON数据,添加到标题中吗?
使用访问令牌进行经过身份验证的请求
现在您已拥有令牌,您可以向API发出经过身份验证的请求.这可以通过Authorization在请求中设置HTTP 标头或查询字符串来完成,具体取决于服务器的配置方式.
在标题中
Authorization: Bearer NgCXRK...MzYjw
Run Code Online (Sandbox Code Playgroud)
作为参数
GET http://localhost:35979/v2/endpoint?access_token=NgCXRK...MzYjw
Run Code Online (Sandbox Code Playgroud)
我看到很多教程引用了OWIN和OAUTH.这些是什么,为什么我需要它们?
OWIN - 用于.NET的开放式Web界面 http://owin.org/
OWIN定义了.NET Web服务器和Web应用程序之间的标准接口.OWIN接口的目标是分离服务器和应用程序,鼓励开发用于.NET Web开发的简单模块,并且通过作为开放标准,激发.NET Web开发工具的开源生态系统.
OAuth 2.0框架使第三方应用程序能够获得对HTTP服务的有限访问权限.客户端不是使用资源所有者的凭证来访问受保护资源,而是获取访问令牌(表示特定范围,生命周期和其他访问属性的字符串).授权服务器在资源所有者的批准下向第三方客户端颁发访问令牌.
| 归档时间: |
|
| 查看次数: |
3348 次 |
| 最近记录: |