使用 Oauth2.0 在 Spring MVC 中进行灵活身份验证的库
Library for a flexible authentication in Spring MVC with Oauth2.0
编辑:
我是第一次这样做,我不知道该为我的案例选择什么。
我在我的服务器上设置了一个 Spring MVC 项目(它只是一个单页网络应用程序),我想添加一些 "custom API calls" 以便我的用户可以代表我的应用程序访问他们的数据.
示例(想象一个空白页面,用户在其 listBox
中添加了他的首选 link):
facebook.com/get_my_latest_posts
gym.com/pay_my_membership
butcher.com/buy_2kg_beef
用户可以随时 edit/add link。当他单击 link 时,将调用 link 并且用户会收到 his facebook latest posts
、confirmation that the gym membership has been paid
或 confirmation that he bought 2kg of beef
。 (根据 link 的调用结果)
我不想让用户总是登录页面,所以我会尽可能使用访问令牌。
这听起来像科幻小说吗?
如果没有,那么我看到了 spring social examples but wouldn't be better if I used a library like google's OAUTH library or Apache Oltu ?
绝对的朋友。
您应该尝试实施令牌服务来访问您的网络应用程序。
这是最好的方法,被认为是一种很好的做法。
请尝试使用您的 google 帐户配置您自己的 oAuth 服务器。
下面 link 很好地解释了我们如何做到这一点。
https://oneminutedistraction.wordpress.com/2014/04/29/using-oauth-for-your-javaee-login/
再举个例子。下面一个也是初学者的一个很好的例子。
Spring Social,Google 的 Java 和 Apache Oltu 的 OAuth 客户端库符合 oauth 规范,都是很好的候选者。每个库都带有一些预定义的提供程序。 Spring 社交和 Apache Oltu 包含一些流行的平台,如 Facebook、Twitter、Github 或 Google。 Google Java comes along 的 OAuth 客户端库与 Google API Java 的客户端库,以便连接到 Google 服务.在 Spring 社交和 Google OAuth 客户端库中,这些提供程序是可选的。
这三个库都是以通用方式编写的,因此可以连接到任何 oauth 提供程序。我认为 Spring Social 可能需要比 Apache Oltu 或 Google OAuth Client Library 更少的集成工作,就其他 Spring 模块(如 Spring Security 或 MVC)而言。 最后这一切都归结为您对图书馆的个人偏好。
如果您决定 Spring 社交,请查看此 quickstart demo(忽略 README.md
和 运行 ./gradlew bootRun
)。它已经包含您在问题评论中描述的所有内容:
- 通过第三方验证用户
- 在一个应用程序中集成多个平台并按需获取用户数据(想象一下下拉菜单项,例如
Twitter profile
或 Timeline
代表 facebook.com/get_my_latest_posts
或 gym.com/pay_my_membership
)
正如您在演示中看到的那样,您无法阻止您的用户必须一次与每个第三方进行一次身份验证。当没有访问或刷新令牌或令牌已过期时,通常会发生这种情况。
查看 Spring 社交 documentation,了解如何添加新的服务提供商。
总结
这三个库都是可扩展的,可以满足您的需要。每个图书馆在 Internet 上都有很多示例。 Spring 社交可能需要较少的集成到现有 Spring 应用程序中的工作。
您的应用程序只是许多不同服务的 oauth 客户端的主机(所以这里没有科幻小说)。您需要考虑在某个地方(数据库?)基于每个用户存储访问和刷新令牌。您需要在应用程序中为要集成的每项服务提供授权后回调 url。
编辑:
我是第一次这样做,我不知道该为我的案例选择什么。 我在我的服务器上设置了一个 Spring MVC 项目(它只是一个单页网络应用程序),我想添加一些 "custom API calls" 以便我的用户可以代表我的应用程序访问他们的数据.
示例(想象一个空白页面,用户在其 listBox
中添加了他的首选 link):
facebook.com/get_my_latest_posts
gym.com/pay_my_membership
butcher.com/buy_2kg_beef
用户可以随时 edit/add link。当他单击 link 时,将调用 link 并且用户会收到 his facebook latest posts
、confirmation that the gym membership has been paid
或 confirmation that he bought 2kg of beef
。 (根据 link 的调用结果)
我不想让用户总是登录页面,所以我会尽可能使用访问令牌。
这听起来像科幻小说吗?
如果没有,那么我看到了 spring social examples but wouldn't be better if I used a library like google's OAUTH library or Apache Oltu ?
绝对的朋友。
您应该尝试实施令牌服务来访问您的网络应用程序。
这是最好的方法,被认为是一种很好的做法。
请尝试使用您的 google 帐户配置您自己的 oAuth 服务器。
下面 link 很好地解释了我们如何做到这一点。
https://oneminutedistraction.wordpress.com/2014/04/29/using-oauth-for-your-javaee-login/
再举个例子。下面一个也是初学者的一个很好的例子。
Spring Social,Google 的 Java 和 Apache Oltu 的 OAuth 客户端库符合 oauth 规范,都是很好的候选者。每个库都带有一些预定义的提供程序。 Spring 社交和 Apache Oltu 包含一些流行的平台,如 Facebook、Twitter、Github 或 Google。 Google Java comes along 的 OAuth 客户端库与 Google API Java 的客户端库,以便连接到 Google 服务.在 Spring 社交和 Google OAuth 客户端库中,这些提供程序是可选的。
这三个库都是以通用方式编写的,因此可以连接到任何 oauth 提供程序。我认为 Spring Social 可能需要比 Apache Oltu 或 Google OAuth Client Library 更少的集成工作,就其他 Spring 模块(如 Spring Security 或 MVC)而言。 最后这一切都归结为您对图书馆的个人偏好。
如果您决定 Spring 社交,请查看此 quickstart demo(忽略 README.md
和 运行 ./gradlew bootRun
)。它已经包含您在问题评论中描述的所有内容:
- 通过第三方验证用户
- 在一个应用程序中集成多个平台并按需获取用户数据(想象一下下拉菜单项,例如
Twitter profile
或Timeline
代表facebook.com/get_my_latest_posts
或gym.com/pay_my_membership
)
正如您在演示中看到的那样,您无法阻止您的用户必须一次与每个第三方进行一次身份验证。当没有访问或刷新令牌或令牌已过期时,通常会发生这种情况。
查看 Spring 社交 documentation,了解如何添加新的服务提供商。
总结
这三个库都是可扩展的,可以满足您的需要。每个图书馆在 Internet 上都有很多示例。 Spring 社交可能需要较少的集成到现有 Spring 应用程序中的工作。
您的应用程序只是许多不同服务的 oauth 客户端的主机(所以这里没有科幻小说)。您需要考虑在某个地方(数据库?)基于每个用户存储访问和刷新令牌。您需要在应用程序中为要集成的每项服务提供授权后回调 url。