首页 > 解决方案 > 在 Hyperledger Composer REST 服务器上使用 Google OAUTH2.0 时无法获取用户信息

问题描述

我已经根据 使用 Google OAUTH2.0 和 REST 服务器的说明构建了一个 REST 服务器,并且我成功了。然后我使用 Angular 为客户端构建了一个应用程序。在用户登录并成功与 REST 服务器 api 交互后,我获得了令牌。

问题是,当我使用此令牌从 google api 获取用户信息(如姓名、电子邮件等)时,它总是返回“Invalid Credentials”错误。我用来获取信息的 API 是https://www.googleapis.com/oauth2/v3/userinfo.
前任:https://www.googleapis.com/oauth2/v3/userinfo?access_token=u2dDxaEeECKPAv6HlhQ1eMULWNADvVDHbGTlUjnS7jfUII0fwiHvkzYGD0FmZjuf

我的问题是什么?任何想法表示赞赏。

标签: oauth-2.0hyperledger-fabrichyperledger-composergoogle-oauth

解决方案


端点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))
}

推荐阅读