oauth-2.0 - 在 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
我的问题是什么?任何想法表示赞赏。
解决方案
端点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))
}
推荐阅读
- git - 无法在 Gitlab 中的此项目中创建受保护的分支
- angular - 在星云步进器的任何一步中移动
- mysql - 使用 any_value 后也得到错误 ORDER BY 子句的表达式 #1 不在 GROUP BY 子句中并且包含非聚合列
- java - 线程“AWT-EventQueue-0”中的异常 java.lang.NoSuchMethodError: org.apache.xmlbeans.XmlOptions.put(Ljava/lang/Object;)V
- c# - 如何设置,如果循环达到最大数量,它会重新开始
- java - 如何将字符串转换为 java.sql.Date?
- node.js - 如何使用 PostgreSQL 保存用户
- java - 检查项目中的所有类是否都有特定的注释
- instagram - 嵌入在 HTML 网页中的 Instagram Live Feed?
- pandas - 绘制从时间序列分布在几个月内的每日平均值