【问题标题】:How to revoke Identity API Token ( Chrome Extension )如何撤销身份 API 令牌(Chrome 扩展)
【发布时间】:2020-11-03 20:31:47
【问题描述】:

我想在我的 Chrome 扩展程序中添加 Sign In with GoogleSign Out 按钮。

this tutorial 中描述了一种使用 chrome.identity.getAuthToken 进行 登录 的技术。效果很好!单击该按钮时,将显示一个用于身份验证和授权的弹出窗口。

但是我应该如何实现退出按钮呢?

我尝试在 Sign Out 按钮的点击处理程序中使用 removeCachedAuthToken 方法。这样,登录功能将无法按预期工作。之后,当我再次按下 Sign In 按钮时,我直接获得了一个新令牌,而没有弹出要求用户对我的扩展进行身份验证和授权的弹出窗口。我希望用户能够通过退出来更改他们的帐户。使用这种技术,这是不可能的。我应该如何实现退出功能来实现这一点?

【问题讨论】:

    标签: javascript api google-chrome-extension oauth google-oauth


    【解决方案1】:

    这也一直困扰着我,直到我意识到我被登录和授权、注销和撤销访问权限之间的区别搞混了。

    首先,我们不要纠结于按钮的名称。你可以称之为退出,但你真正想要实现的是让用户撤消其 Google 帐户的访问权限,然后登录并授予对其他帐户的访问权限。

    如果你使用removeCacheAuthToken,然后再次授权,并没有看到弹出窗口,那么这意味着扩展仍然可以访问某些 API。要查看哪些应用已被授予访问哪些 Google 服务的权限,请转至 permission settings 并查看。

    有几种方法可以撤销访问权限:

    1. 转到chrome://identity-internals/ 并删除您想要的令牌。然后点击授权按钮,您应该会看到一个弹出窗口来选择要授予访问权限的 Google 帐户。

    当然,该方法仅用于测试。如果您的最终用户访问该页面,他们将不会看到您的扩展程序的访问令牌。

    1. 当用户单击撤消访问权限按钮或您调用的任何名称时,会显示一个弹出窗口,告诉他们转到permission settings page 以手动撤消访问权限。

    2. 在当前网页上创建一个表单,将访问令牌添加到表单并提交到https://oauth2.googleapis.com/revoke端点。

    根据我的经验,方法 3 似乎是一个理想的解决方案,但它对我来说很受欢迎。有时我会收到一个无效或过期的令牌错误,并且排除故障是不值得的。为了安心,我会坚持使用方法。

    【讨论】:

    • 我编辑了@catwhocodes 问题,使其更加清晰。因此,您可能想要编辑您的答案。例如,我认为不再需要答案开头的澄清问题。
    猜你喜欢
    • 2023-03-12
    • 2014-12-01
    • 1970-01-01
    • 2014-06-06
    • 1970-01-01
    • 2015-12-27
    • 1970-01-01
    • 1970-01-01
    • 2015-11-02
    相关资源
    最近更新 更多