Adal JS-仅注销一个AD网站

时间:2019-05-02 14:41:12

标签: azure single-page-application adal adal.js

我正在使用ADAL JS的SPA上工作。调用adalService.logOut()之后,将用户正确重定向到Microsoft oauth注销URL,并且注销发生的很好。但是,该用户已退出所有Microsoft 365网站和所有其他使用ADAL的网站。

有没有办法仅将用户从该站点注销?

1 个答案:

答案 0 :(得分:1)

不幸的是,ADAL JS库的工作方式正如您所描述的。调用注销函数时,它将清除整个缓存。根据维基: https://github.com/AzureAD/azure-activedirectory-library-for-js/wiki/Login-methods#logout

  

退出   调用注销方法时,库将清除   浏览器存储中的应用程序缓存,并将注销请求发送到   Azure AD实例的注销终结点。

     

authContext.logOut();默认行为是将用户重定向到   注销后的window.location.href。如果postLogoutRedirectUri值为   在配置时设置,用户将被重定向到该URI。

另一种手动注销的方法。那就是,自己浏览缓存,然后删除您想要删除的信息。这将以某种方式“注销”用户,因为您已经删除了对令牌的访问。

根据Wiki的配置Auth Context https://github.com/AzureAD/azure-activedirectory-library-for-js/wiki/Config-authentication-context

  

cacheLocation-ADAL将令牌存储在浏览器存储中,   默认为'sessionStorage'。您可以将其设置为   “ localStorage”或“ sessionStorage”。

window.config = {
    clientId: 'g075edef-0efa-453b-997b-de1337c29185',
    cacheLocation: 'localStorage' // Default is sessionStorage
}; Tokens are accessible from JavaScript since ADAL.JS is using HTML5 browser storage. It is recommended to prompt users to login
     再次

应用中的重要操作。你也应该保护   您的XSS网站。请在此处查看文章:   https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet

     

您可以阅读有关其他可配置选项的更多详细信息   在这里。

有关访问本地存储的更多信息,您可以在这里阅读:https://blog.logrocket.com/the-complete-guide-to-using-localstorage-in-javascript-apps-ba44edb53a36

可以在以下位置找到用于存储的MDN Web文档:https://developer.mozilla.org/en-US/docs/Web/API/Storage