0

我正在尝试创建一个允许基本 Google 或 Microsoft 用户登录的单页应用程序。使用Google Sign in for Websites,当用户登录并允许访问时,在后续访问时不会提示用户登录我的网站。我的 javascript 可以检查用户是否已登录,并执行必要的操作。

但是,使用 MSAL,无法检查用户当前是否已登录。看来我的 javascript 必须调用 userAgentApplication.loginPopup() 来检查用户是否已登录。这将始终导致显示弹出窗口,即使用户已经登录(并允许访问)。

有什么方法可以调用 javascript 中的函数来查明用户是否之前已经登录过?

先感谢您。

4

1 回答 1

0

您应该能够使用以下流程执行此操作。它用于acquireTokenSilent尝试检查当前令牌。下面的流程利用了它,并通过错误检查仅在需要时弹出弹出窗口。

getToken = () => {
  return this.app.acquireTokenSilent(this.applicationConfig.graphScopes).then(
    accessToken => {
      console.log('accessToken :', accessToken)
      return accessToken
    },
    error => {
      console.log('error :', error)
      return this.app
        .acquireTokenPopup(this.applicationConfig.graphScopes)
        .then(
          accessToken => {
            return accessToken
          },
          err => {
            console.error(err)
          }
        )
    }
  )
}
于 2019-02-25T12:54:25.840 回答