[英]Library for a flexible authentication in Spring MVC with Oauth2.0
编辑:
我是第一次这样做,我不知道该如何选择。 我在服务器上建立了一个Spring MVC项目(它只是一个单页Web应用程序),并希望添加一些“自定义API调用”,以便我的用户可以代表我的应用程序访问其数据。
示例(想象一个空白页,用户在其中将他的首选链接添加到他的listBox
):
facebook.com/get_my_latest_posts gym.com/pay_my_membership butcher.com/buy_2kg_beef
用户可以根据需要随时编辑/添加链接。 当他单击一个链接时,该链接就会被调用,并且用户会收到his facebook latest posts
, confirmation that the gym membership has been paid
或confirmation that he bought 2kg of beef
。 (基于调用链接的结果)
我不想让用户总是登录页面,所以我将尽可能尝试使用访问令牌。
这听起来像科幻小说吗?
如果没有,那么我看到了春季的社交示例,但是如果我使用类似google的OAUTH库或Apache Oltu这样的库, 那就更好了吗?
Spring Social,Google的Java OAuth客户端库和Apache Oltu都符合oauth规范,都是不错的选择。 每个库都带有一些预定义的提供程序。 Spring Social和Apache Oltu包含一些流行的平台,例如Facebook,Twitter,Github或Google。 谷歌OAuth客户端库的Java 走来 ,以连接到谷歌服务与谷歌API客户端库的Java。 在Spring Social和Google OAuth客户端库中,这些提供程序是可选的。
这三个库都是以一种通用的方式编写的,因此一个库可以连接到任何oauth提供程序。 我认为就其他Spring模块(例如Spring Security或MVC)而言,Spring Social所需的集成工作可能比Apache Oltu或Google OAuth客户端库少。 最后,一切都归结为您个人对图书馆的偏爱。
如果您决定使用Spring Social,请看一下此快速入门演示 (忽略README.md
并只运行./gradlew bootRun
)。 它已经包含您在问题注释中描述的所有内容:
Twitter profile
或Timeline
代表facebook.com/get_my_latest_posts
或gym.com/pay_my_membership
) 正如在演示中所看到的那样,您不能防止您的用户一次必须与每个第三方进行身份验证。 通常在没有访问或刷新令牌或令牌已过期时发生。
查看有关如何添加新服务提供商的Spring Social 文档 。
摘要
这三个库都是可扩展的,可以满足您的需求。 互联网上每个图书馆都有很多例子。 Spring Social可以减少与现有Spring应用程序的集成工作。
您的应用程序只是许多提供不同服务的oauth客户端的主机(因此这里没有科幻小说)。 您需要考虑将每个用户的访问和刷新令牌存储在某个地方(数据库?)。 您需要在应用程序中为要集成的每个服务提供授权后回调URL。
绝对是朋友。
您应该尝试实现令牌服务以访问您的Web应用程序。
这是最好的方法,被认为是一种很好的做法。
请尝试使用您的Google帐户配置自己的oAuth服务器。
下面的链接很好地解释了我们该如何做。
https://oneminutedistraction.wordpress.com/2014/04/29/using-oauth-for-your-javaee-login/
另一个例子。 下面对于初学者来说也是一个很好的例子。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.