oauth2.0服务的开发-code、token的维持与验证

zhang1hang2 发布于 2013/08/19 23:11
阅读 10K+
收藏 3
oauth2.0还比较新,中英文文档都比较少,网上的都是调用oauth2接口文档。 oauth官网似乎只规定了接口参数和返回值,也没有定义如何生成token,以及验证和维持。 问:开发类似新浪微博这种oauth2.0服务,token的维持和验证方式是怎样的? 我目前的理解和设想是:使用redis存储数据,产生code和token都存在redis里,redis有效期设定为code或token的过期时间。在key里存用户标识。这样可以维持好token,验证是也可以直接比较用户参数和redis保存值。 求指教。
加载中
0
tsl0922
tsl0922

可以试下 spring-security-oauth, code和token放缓存、内存或数据库里都可以,默认好像提供了内存和数据库的实现。

zhang1hang2
zhang1hang2
“默认提供内存和数据库的实现”是指提供好了接口吗?可以提供帮助链接吗?
zhang1hang2
zhang1hang2
另外,apache-shiro 和 spring-security 和 oauth不是一个概念。shiro是实现系统本身的安全体系,oauth是给第三方开发授权。
尚睿软件
尚睿软件
回复 @tsl0922 : 请教 一个系统内 一个账号可以管理别的账号,比如可以代为管理父母的账号,这个适用什么技术,也涉及到授权的问题
tsl0922
tsl0922
回复 @尤胜荣 : 还有个Apache Amber,不过用起来就不像spring-security-oauth那样简单方便了。其他的可以在这里找找看:http://oauth.net/code
zhang1hang2
zhang1hang2
谢谢指点,我等的就是你这一句(用内存和数据库实现),我觉得用redis刚好合适,有有效期设置,比数据库高效,可以按数据结构存储。 我用的apache-amber实现生成code和token。就是搞不清楚如何维护有效期和验证可靠性。spring-security-oauth2 也看过,感觉和apache-amber相比复杂很多。
下一页
0
tsl0922
tsl0922

spring-security-oauth和apache-amber相比提供的实现更具体些,可以说是开箱即用的,只要稍做些配置就可以直接用了,apache-amber更加底层些,可以说都只是协议的API,比如你说的code和token的持久化似乎都是要自己实现的。如果你真的想只用amber做oauth,可以参考下spring-security-oauth的源码,代码易读,注释也很详细。

0
tsl0922
tsl0922

回复 @zhang1hang2 : 默认提供了JdbcTokenStore和InMemoryTokenStore两种实现,代码在这里。当然你也可以利用它的接口写一套自己的实现。

zhang1hang2
zhang1hang2
谢谢谢谢。我先研究源码去。前面我都花时间看它的simples去了。看得不明不白。
返回顶部
顶部