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

时间:2015-02-26 22:14:52

标签: google-chrome google-chrome-devtools google-oauth

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

1 个答案:

答案 0 :(得分: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;

};
相关问题