我正在使用Google登录按钮让用户使用其Google帐户登录:
gapi.signin2.render("container-btn-google-login", {
scope: "email profile",
onsuccess: (user) => {
let token = user.getAuthResponse();
setToken(token);
// How can I get the Access Token here
// that should be the same as user.Zi.access_token?
resolve(token);
},
});
我将调用其他Google API,并且不想使用其Javascript库(我将使用fetch
来调用其REST API)。
但是,当我将Authorization: token.id_token
作为标题时,该请求被拒绝。如果我手动输入一个可以从控制台(user.Zi.access_token
)看到的值,那么它将起作用。
如何从Google API Javascript SDK中提取access_token
?对我来说,使用像Zi
这样的神秘且无证的东西似乎并不安全。
答案 0 :(得分:0)
好的,我在这里找到了relevant documentation。我们可以使用user.getAuthResponse(true)
来获取带有访问令牌和其他有用信息的Auth响应:
参数为includeAuthorizationData
:
可选:一个布尔值,指定是否始终返回访问权限 令牌和范围。默认情况下,访问令牌和请求的范围 当fetch_basic_profile为true(默认值)时不返回 并且不需要其他范围。
我的问题中的示例工作代码:
let token = user.getAuthResponse(true);
console.log(token.access_token)