Oauth2.0的解释
OAuth(开放授权)是一个开放标准,允许用户授权第三方移动应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容。OAuth是一个关于授权(Authorization)的开放网络标准,目前的版本是2.0版。注意是Authorization(授权),而不是Authentication(认证),用来做Authentication(认证)的标准叫做openid connect。
OAuth2.0中的四种模式
1.授权码模式(authorization code)
2.简化模式(implicit)
3.密码模式(resource owner password credentials)
4.客户端模式(client credentials)
Oauth2.0 认证的Web api例子
源码地址: https://github.com/jasonhua95/Oauth2.git
非常简单的OAuth2认证Demo,首次启动的时候会加载管理NuGet,保持网络链接
VS创建Oauth2.0 认证的Web api过程
1. 新建Web项目
2. 选择模板Empty ,选择Web API
3. 管理NuGet
Microsoft.Owin
Microsoft.Owin.Cors
Microsoft.Owin.Security.OAuth
Microsoft.AspNet.WebApi.Owin
Microsoft.Owin.Host.SystemWeb
Microsoft.AspNet.Identity.Owin
4. 新建Startup,删除Global.asax
5. 测试,可以用Postman
6.获取token
项目启动,启动起来报错HTTP Error 403.14 - Forbidden,不用管,这个是个web api项目,没有页面,报这样的错误正常
7. 测试API
7.刷新token,这里的refresh_token就是上次获取token返回结果中的refresh_token.
错误
1. 未能加载文件或程序集
解决办法:先删除通过packages.config相应的程序集,之后NuGet引用相应的程序集