#oauth-2.0 #hyperledger-fabric #hyperledger-composer #google-oauth
#oauth-2.0 #hyperledger-fabric #hyperledger-composer #google-oauth
Вопрос:
Я создал REST-сервер в соответствии с инструкциями, используя Google OAUTH2.0 с REST-сервером, и я добился успеха. Затем я создал приложение для клиента с использованием angular. Я получил токен после того, как пользователь вошел в систему и успешно взаимодействовал с API REST server.
Проблема в том, что когда я использую этот токен для получения информации о пользователе, такой как имя, адрес электронной почты, … из Google api, он всегда возвращает ошибку «Недопустимые учетные данные». API, который я использую для получения информации, является https://www.googleapis.com/oauth2/v3/userinfo
.
Пример: https://www.googleapis.com/oauth2/v3/userinfo?access_token=u2dDxaEeECKPAv6HlhQ1eMULWNADvVDHbGTlUjnS7jfUII0fwiHvkzYGD0FmZjuf
В чем моя проблема? Приветствуются любые идеи.
Ответ №1:
Конечная точка https://www.googleapis.com/oauth2/v3/userinfo
требует авторизации.
Это означает, что вам необходимо включить HTTP-заголовок Authorization: Bearer <AccessToken>
для вызова этой конечной точки.
Вот пример в Go:
func displayUserInfo(accessToken string) {
endpoint := "https://www.googleapis.com/oauth2/v3/userinfo"
req := HttpRequest.NewRequest()
req.SetHeaders(map[string]string{"Authorization": "Bearer " accessToken})
res, err := req.Get(endpoint)
if err != nil {
fmt.Println("Error: ", err)
return
}
body, err := res.Body()
if err != nil {
fmt.Println("Error: ", err)
return
}
fmt.Println(string(body))
}