chrome.identity API 似乎需要用户重新授权,即使用户过去已授予我的应用程序权限。
以下是正在执行的步骤:
使用
获取所需范围的用户授权chrome.identity.getAuthToken(
{ account: { id: googleAccountId }, interactive: true },
(token) => { console.log("Access token", token); })
这会弹出一个对话框,提示用户授权我的应用访问某些敏感范围。一旦用户接受它,我就会获取访问令牌并使用它来获取用户信息。
每当我需要访问令牌时,我都会调用 chrome.identity.getAuthToken。我了解chrome在内部缓存它,所以我不需要担心多次调用它。
每隔一段时间,用户似乎需要重新授权我的应用程序。即以非交互方式调用 chrome.identity.getAuthToken 不起作用。需要再次提示用户授权我的应用程序。这就是问题。
预期行为是: 一旦用户授权我的应用程序并授予某些敏感范围的权限,除非密码更改/需要访问新范围,chrome.identity API 永远不会要求用户重新授权我的应用程序。 这是极差的用户体验。
注意事项
当系统提示用户再次对我的应用重新授权时,我在 account.google.com 下检查了该用户对我的应用的权限。我的应用程序已经拥有所需的权限。 我的理解是,一旦用户授予我的应用权限 - 它不应再次显示对话框(对于该用户)。
(我对 chrome.identity API 的理解可能不正确,如果是这样,请告诉我)。
非常感谢任何输入。