为了账号安全,请及时绑定邮箱和手机立即绑定

如何从登录的 Google Sign In(仅限客户端的应用程序)中正确获取访问令牌?

如何从登录的 Google Sign In(仅限客户端的应用程序)中正确获取访问令牌?

慕标5832272 2021-06-10 01:04:17
我正在使用 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)看到的值,它就可以工作。如何access_token从 Google API Javascript SDK 中提取?使用一些神秘和无证之类的东西Zi对我来说似乎并不安全。
查看完整描述

1 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

好的,我在这里找到了相关的文档。我们可以使用user.getAuthResponse(true)访问令牌和可能的其他有用信息来获取身份验证响应:

参数是includeAuthorizationData

可选:指定是否始终返回访问令牌和范围的布尔值。默认情况下,当 fetch_basic_profile 为 true(默认值)并且没有请求其他范围时,不会返回访问令牌和请求的范围。

我的问题中的示例工作代码:

let token = user.getAuthResponse(true);
console.log(token.access_token)


查看完整回答
反对 回复 2021-06-18
  • 1 回答
  • 0 关注
  • 265 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信