一般在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
方法。
4、新建AccessTokenServerProvider
类继承Microsoft.Owin.Security.Infrastructure.AuthenticationTokenProvider
,重写Create
方法。
5、新建Startup
类。配置OAuth启用OAuthServer。
6、资源服务器启用OAuthBearer。
7、新建OAuthAttribute
类继承System.Web.Http.AuthorizeAttribute
,重写IsAuthorized
方法。
8、资源接口启用OAuthAttribute
限制。