2016-10-16 3 views
1

Я использую социальную сеть Vkontakte как сервер авторизации Oauth2. Поэтому у меня есть несколько шагов: 1) получить код с помощью запроса с request_type = код 2) получить маркер доступа, когда я отправить запрос на маркер доступа 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

Фактически после нескольких дней расследования я выяснил, что Spring OAuth2, полностью реализующий все функции и конфигурацию для моего клиентского приложения, использует authorization code grant для получения маркер доступа из Vkontakte (авторизации сервера)

enter image description here

Единственное, что мне нужно делать, если я взять в качестве образца Spring Boot and OAuth2 social login simple является заполнение application.yml с правильными кредитки для моего авторизации сервера:

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 получить LOGGED информацию о пользователе.

По имени лексемы этого название коды авторизации Вы получаете после прохождения authoriztion (response_type = лексемы имя, он называет кода в моем случае) и использовать для получения маркеров доступа.

Надеется, что это будет полезными, люди сталкиваются с той же проблемой

Смежные вопросы