繁体   English   中英

使用Oauth2.0在Spring MVC中进行灵活身份验证的库

[英]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 postsconfirmation that the gym membership has been paidconfirmation 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 profileTimeline代表facebook.com/get_my_latest_postsgym.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/

另一个例子。 下面对于初学者来说也是一个很好的例子。

https://stormpath.com/blog/token-auth-for-java

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM