2016-10-16 101 views
1

我使用社交網絡Vkontakte作爲Oauth2授權服務器。所以,我有以下幾個步驟: 1)獲取與請求代碼與request_type =代碼 2)獲得的accessToken當我發送的請求訪問令牌URIspring oauth2授權碼流程,配置爲VK(Vkontakte)

enter image description here

所以我想使用Spring的oauth2,但我應該得到授權碼,然後再訪問令牌,我試圖添加到application.yml:

authorized-grant-types: authorization_code 

這是我application.yml:

security: 
    oauth2: 
    client: 
     clientId: [clientId] 
     clientSecret: [clientSecret] 
     accessTokenUri: https://oauth.vk.com/access_token 
     userAuthorizationUri: https://oauth.vk.com/authorize 
     tokenName: access_token 
     registered-redirect-uri: http://localhost:8080/login 
    resource: 
     token-info-uri: http://localhost:8080/user 

但實際上它沒有幫助。如果有人面對它,並知道如何配置Spring的oauth2應用程序 - 將是幫助

+0

請張貼更多詳細的配置,註冊客戶端,發送的請求和所有相關的代碼 –

+0

也許我不理解你的authoriztion_code的意思,但authorization_code是您爲用戶生成的內容,而無需他們對自己進行身份驗證例如,請考慮您何時執行密碼重設。在這種情況下,您將生成一個自動化代碼並將其發送給用戶。訪問令牌是用戶通過使用用戶名和密碼或授權代碼成功進行身份驗證的用戶。這是一個巨大的過分簡單化,但希望清理一些東西。 – Leon

+0

@Leon我已更新問題,我使用社交網絡授權服務器api獲取代碼,然後我必須獲取訪問令牌 –

回答

1

調查後的幾天其實感激我想通了,春天的OAuth2完全實現所有的功能和配置,以我的客戶端應用程序使用authorization code grant獲得從歷史Vkontakte訪問令牌(認證服務器)

enter image description here

我需要我若爲樣本Spring Boot and OAuth2 social login simple是填充application.yml與我的授權服務器正確creds做的唯一的事情:

security: 
    oauth2: 
    client: 
     clientId: xxxxxxx 
     clientSecret: xxxxxxxxxxx 
     accessTokenUri: https://oauth.vk.com/access_token 
     userAuthorizationUri: https://oauth.vk.com/authorize 
     tokenName: code 
     authenticationScheme: query 
     clientAuthenticationScheme: form 
     grant-type: authorization_code 
    resource: 
     userInfoUri: https://api.vk.com/method/users.get 

我面臨被提供正確令牌名userInfoUri檢索記錄的用戶信息的唯一問題。

根據標記名稱它的授權碼傳球authoriztion後的GET(RESPONSE_TYPE = 標記名稱,它調用代碼在我的情況),並用它來獲得訪問令牌名。

希望這將是有幫助的人面臨同樣的問題