是否可以从 refreshToken、accessToken 或通过类似于此Retrieve profile information for a signed-in user in NodeJS 的方法获取当前登录用户(电子邮件、姓名等)?
问问题
240 次
1 回答
1
您可以使用 userinfo 端点来请求其中的一些信息。
https://openidconnect.googleapis.com/v1/userinfo?access_token=XXXX
一个问题是您需要将配置文件范围添加到您的授权请求中,然后您将获得类似这样的信息
{
"sub": "117475532672775346",
"name": "Linda Lawton",
"given_name": "Linda",
"family_name": "Lawton",
"picture": "https://lh3.googleusercontent.com/a-/AOh14GhroCYJp2P9xeYeYk1npchBPK-zbtTxzNQo0WAHI20",
"locale": "en"
}
然后,您还可以通过 google people api people.get为您提供更多信息。
但是,如果不请求电子邮件范围,您就无法从 userinfo 端点取回电子邮件,但是当您使用谷歌日历范围时,您确实不需要一个技巧。
如果您使用calendar.get并请求用户主日历,则日历名称是他们的电子邮件地址。
{
"kind": "calendar#calendar",
"etag": "\"Qvsbvz0_YlxYi3Ml2Fd7A\"",
"id": "xxxxx@gmail.com",
"summary": "Linda Lawton ",
"description": "test",
"timeZone": "Europe/Copenhagen",
"conferenceProperties": {
"allowedConferenceSolutionTypes": [
"hangoutsMeet"
]
}
}
于 2020-06-29T08:29:19.057 回答