首页 > Windows开发 > 详细

OAuth做webapi认证

时间:2015-11-01 01:36:34      阅读:394      评论:0      收藏:0      [点我收藏+]

OAuth做webapi认证

看到园子里面有人写的OAuth,就想把自己实现的OAuth也分享一下,关于OAuth协议这里就不再赘述。

一、作为认证服务器,首先需要提供一个可以通过appid/appsecret来获取token这样的一个接口,于是便有了以下代码。

技术分享 View Code

创建token的算法可以自行实现,我是将新生成的Guid做了一下md5处理,代码如下:

技术分享 View Code

上文可以看到,在生成token了以后,就一个SetToken,就是将token存储在缓存里面,并设置了一定时间的生存周期,代码如下:

技术分享 View Code

为什么要用token做key,是因为token的变更会导致isv token验证失效,但是用token做key就可以在存活周期内,这个key都可以使用,避免了多线程获取token,或是其他原因导致的token失效。作为认证服务器,还需要提供一个RefreshToken这样的接口,用来给刷新token的存活周期,代码相似这里就不再赘述。

 

二、在Api做验证的时候,就需要开始对Token进行验证了,代码如下:

技术分享 View Code

使用比较传统的方式,继承于DelegatingHandler,然后进行处理,首先是做的IP验证,然后再进行token有效期验证,最后再进行Api的权限调用验证。验证的代码如下:

技术分享 View Code

GetServerConfig()是从DB/Cache里面获取服务器的自定义配置,然后看是否开启ip白名单/黑名单,下面的代码同理,是否开启权限验证。

那认证服务器到这里实际上就结束了,关于isv申请appid/appsecret。然后用户同意授权以后,存储appid和user之间的关联关系,就需要看客自行实现了。

 

另外有一个扩展代码这里也提一下,就是关于ApiResponseEntity的返回值处理,代码如下:

技术分享 View Code

 

OAuth做webapi认证

原文:http://www.cnblogs.com/Leo_wl/p/4926606.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!