[英]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.