webapi之owin的oauth2.0密码模式_01概述
一般在webapi接口中,为了防止接口被随意调用,都会验证用户身份。
然而不能每次调用接口都需要用户输入用户名密码来验证,这时就需要授权颁发令牌了,持有令牌就可以访问接口,接口也能验证令牌身份。
简单流程
1、新建一个webapi项目,添加以下nuget包
Microsoft.Owin.Security.OAuth
Microsoft.AspNet.WebApi.Owin
Microsoft.Owin.Host.SystemWeb
(这个是让owin可以跑在IIS上)
2、新建OAuthServerProvider
类继承Microsoft.Owin.Security.OAuth.OAuthAuthorizationServerProvider
,重写ValidateClientAuthentication
和GrantResourceOwnerCredentials
方法。
实现验证与授权。
3、新建RefreshTokenServerProvider
类继承Microsoft.Owin.Security.Infrastructure.AuthenticationTokenProvider
,重写Create
和Receive
方法。
实现刷新token的自定义生成和验证。
4、新建AccessTokenServerProvider
类继承Microsoft.Owin.Security.Infrastructure.AuthenticationTokenProvider
,重写Create
方法。
实现访问token的自定义生成。
5、新建Startup
类。配置OAuth启用OAuthServer。
6、资源服务器启用OAuthBearer。
7、新建OAuthAttribute
类继承System.Web.Http.AuthorizeAttribute
,重写IsAuthorized
方法。
实现自定义验证规则。
8、资源接口启用OAuthAttribute
限制。
最新文章
- OpenSSL 使用拾遗(一)---- 生成 pkcs12 文件
- Flash插件地址
- glyphicons-halflings-regular.woff 404
- HDU 4513 吉哥系列故事——完美队形II(Manacher)
- python的 map,filter, reduce, enumerate
- python--flask使用
- Hibernate HQL注入攻击入门
- java集合类(六)About Queue
- E: Sub-process /usr/bin/dpkg returned an error code (1)
- nginx、fastCGI、php-fpm关系梳理(转载参考)
- 「Foundation」字符串
- 控制结构(4) 局部化(localization)
- 在做vue计算属性,v-for处理数组时遇到的一个bug
- 阿里云服务器Centos 7安装PHP
- 程序中使用now()函数对性能的影响
- memset struct含有string的崩溃
- PHP Filter 函数 日常可用
- 出了一个js的题。
- java stream collector
- 使用angular路由切换后 轮播以及iscrollJs失效的问题