Невозможно получить информацию о пользователе при использовании Google OAUTH2.0 с сервером REST Hyperledger Composer - PullRequest
0 голосов
/ 14 марта 2019

Я собрал REST-сервер в соответствии с инструкциями Использование Google OAUTH2.0 с REST-сервером , и мне это удалось.Затем я создал приложение для клиента с использованием угловых.Я получил токен после того, как пользователь вошел в систему и успешно взаимодействовал с API-интерфейсом REST.

Проблема заключается в том, что когда я использую этот токен, чтобы получить информацию о пользователе, такую ​​как имя, адрес электронной почты, ... из API Google, онвсегда возвращает ошибку «Неверные учетные данные».API, который я использую для получения информации: https://www.googleapis.com/oauth2/v3/userinfo.
Например: https://www.googleapis.com/oauth2/v3/userinfo?access_token=u2dDxaEeECKPAv6HlhQ1eMULWNADvVDHbGTlUjnS7jfUII0fwiHvkzYGD0FmZjuf

В чем моя проблема?Любые идеи приветствуются.

1 Ответ

1 голос
/ 20 июня 2019

Конечная точка 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))
}
...