如何使用chrome identity api检查用户是否已登录?

vja*_*n27 5 google-chrome google-chrome-devtools google-oauth

我正在尝试为我的chrome扩展添加身份验证,我正在使用chrome identity-api.我正在使用getAuthToken API来获取访问令牌.我想在我的popup.html中提供登录/注销功能,以便仅在用户未登录(或注销)时才显示登录按钮.但是,我无法找到检查用户是否登录的方法.

Mik*_*ese 0

你需要检查chrome.runtime.lastError

interactive: false我在弹出窗口加载时使用此操作。

如果用户未登录,则调用getAuthToken将失败并且我的函数将返回。如果用户已登录,我将显示登录元素并显示注销按钮。

如果用户未登录,我有一个“使用谷歌登录”按钮供他们点击。

window.onload = () => {
  console.log("starting popup.js");

  chrome.identity.getAuthToken({ interactive: false }, function (token) {
    // If the user isn't logged in yet, make them login via clicking button
    if (chrome.runtime.lastError) {
      // Something went wrong
      console.warn("Whoops.. " + chrome.runtime.lastError.message);
      // Maybe explain that to the user too?
      return;
    }
    document.getElementById("logged-in").style.display = "block";
    document.getElementById("btn-logout").disabled = false;

};
Run Code Online (Sandbox Code Playgroud)