簡體   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