我使用Spring Boot starter社交Facebook爲了通過Facebook驗證/授權用戶。Spring Boot starter社交Facebook添加權限
我想添加一些Permissions,例如電子郵件爲了檢索用戶的電子郵件地址。
如何提供Spring Boot Facebook配置?我需要添加範圍或默認範圍屬性?
我使用Spring Boot starter社交Facebook爲了通過Facebook驗證/授權用戶。Spring Boot starter社交Facebook添加權限
我想添加一些Permissions,例如電子郵件爲了檢索用戶的電子郵件地址。
如何提供Spring Boot Facebook配置?我需要添加範圍或默認範圍屬性?
首發只給你一個默認授權頁面。這是一個很好的開始,但是你可能不想實際使用它,因爲它看起來很平實。相反,你會創建自己的授權頁面,其形式爲POST到/ connect/facebook。在這種形式下,您提供了一個名爲「範圍」的隱藏字段,其中包含您希望從Facebook獲得的任何權限的逗號分隔列表。
首先,您需要確保您的設置不是設置spring.social.auto_connection_views屬性(或者,如果您確實將其設置爲false)。然後創建一個匹配「connect/facebookConnect」的視圖(JSP,Thymeleaf,無論什麼)。其中,包含POST/to/connect/facebook與「範圍」隱藏字段的表單。
舉一個例子,看看https://github.com/spring-projects/spring-social-samples/tree/master/spring-social-showcase-boot。該項目使用Thymeleaf模板,您可以在src/main/resources/templates/connect/facebookConnect.html中找到facebookConnect.html模板。
在提供的示例中,轉至資源>模板> connect> facebookConnect.html。
那麼您可以在下面隱藏的輸入編輯的範圍:
<input type="hidden" name="scope" value="user_likes,email" />
這使您可以允許用戶喜好和用戶郵箱爲例。
感謝您的回答。我以前使用ConnectController,但從此類中移出,因爲我需要使用本地用戶帳戶(鏈接到OAuth憑據)在我的應用程序中登錄用戶。因此,現在我使用SpringSocialConfigurer,我也使用Neo4j,所以我實現了自己的Neo4jConnectionRepository和Neo4jUsersConnectionRepository – alexanoid
這樣,本地用戶帳戶將自動創建(如果需要),本地用戶將在OAuth2跳舞后立即登錄..這就是爲什麼我選擇了SpringSocialConfigurer – alexanoid
如果您使用的是SpringSocialConfigurer(這意味着您正在使用SocialAuthenticationFilter),那麼您應該能夠以相同方式或多或少地請求範圍。這是一個表單,它會對/ signin/facebook做一個GET請求,並且有一個隱藏的「範圍」字段。例如,請參閱https://github.com/spring-projects/spring-social-samples/blob/master/spring-social-showcase-sec/src/main/resources/views/signin.html。 (請注意,表單中使用的實際權限已過時...我需要修復此問題,但它們饋送給SocialAuthenticationFilter的方式仍然有效。) –