当前位置: 首页 > 知识库问答 >
问题:

如何在AD上重新验证而不重新加载页面?

酆鸿哲
2023-03-14

我正在做一个SPA,其中adal-angular lib用于处理客户端的身份验证。在后端应用程序上,passport-azure-ad与承载策略一起使用,以发布访问令牌和其他东西(尽管没有刷新令牌)。

当用户进行身份验证时,accessToken和idToken一起保存在localStorage中,并带有令牌超时(大约为1小时)。

当令牌到期时,我收到错误(AADSTS50058)返回说单点登录失败,因为它缺少cookie,以确认身份。我不确定谁需要发布此cookie,以及为什么不发布它。

因此,我有一个选择,在达到错误后,手动地以编程方式调用signIn方法。它可以登录,但会重新加载整个页面,用户会失去工作。

所以我的问题是:

>

  • 是否可以通过缺少cookie来解决此问题,谁需要发布cookie,并且是否也会重新加载整页?

    如果我不能用丢失的cookie来解决这个问题,有没有另一种方法可以在不重新加载整个页面的情况下重新登录?

    谢了。

  • 共有1个答案

    狄安歌
    2023-03-14

    如果您的浏览器中禁用了第三方 Cookie,则可能会发生此错误。

    如果您正在隐身模式下通过 Chrome 浏览器访问角度应用html" target="_blank">程序。它会在主页上禁用第三方 Cookie。

    如果您使用的是隐身模式。在您的浏览器中重新启用第三方 Cookie 以防止发生此错误。

    对于 AADSTS50058 错误,您需要将浏览器扩展中的 login.microsoftonline.com endpoint列入白名单,以避免再次收到此错误

    对于使用访问令牌,我建议使用刷新令牌,访问令牌的生命周期很短,因为它变得无效或过期,您需要重新登录。所以使用刷新令牌,因为它的生命周期很长

    但是,有两种选择,

      < li >设置较短的到期日期60分钟以访问令牌。 < li >将长过期日期设置为100天以刷新令牌。

    “访问令牌有效一小时,刷新令牌有效一年或直到被吊销”因此,您最好同时使用访问令牌和刷新令牌来解决此问题

    要了解更多详细信息,请找到这些有用的链接:

    Ref1、Ref2、Ref3

     类似资料:
    • 问题内容: 我有一个带有php include的Div Tag,该div用来填充该信息,我想要做的是使它每隔15秒调用一次,以便它可以在那里更新信息,而不必重新加载整个网页。我试图用JavaScript / jQuery做到这一点,但似乎无法正常工作 这是我在搜索一些内容后所拥有的,然后发生的是,它加载了Small.php,但不会每15秒刷新一次或更新信息。 请帮忙! 我应该添加所有应显示的php

    • 问题内容: 我想在提交按钮单击时执行一些php代码,而不刷新/重新加载我的页面。可能吗?我在页面加载时也具有javascript函数,这就是为什么我不想刷新页面。提前致谢。 这是我的代码 问题答案: 好吧,您需要使用javascript / ajax。 示例:在您的提交链接(例如a href)上,添加call-in-js函数并传递所需的任何变量 如果要动态更改某些内容,这很容易-您只需要创建标签并

    • 问题内容: 我将如何更新每两秒钟在服务器上更新一次的映像,而无需用户按下刷新按钮,我的第一个猜测是ajax,但我之前从未真正使用过它。有人能指出我正确的方向吗? 编辑:忘记提及图像是由perl脚本生成的.gif-尝试通过url抓取它返回脚本 问题答案: 您的Perl脚本似乎有问题。尝试通过URL访问图像应该仍然返回图像。它应该返回二进制数据而不是脚本。您还应该将响应的Content- type标头

    • 我想重新加载页面。我该怎么做?

    • 问题内容: 我有一个按钮()。单击后,页面将重新加载。由于我有一些在页面加载时调用的jQuery 函数,因此导致这些元素再次被隐藏。我如何使按钮什么也不做,所以我仍然可以添加单击按钮但不重新加载页面时发生的某些操作。 问题答案: 不需要js或jquery。要停止页面重新加载,只需将按钮类型指定为“按钮”即可。如果您未指定按钮类型,浏览器会将其设置为“重置”或“提交”,从而导致页面重新加载。

    • 我有一个用户名列表,用户名列表根据用户输入的数量而增加。问题是,当用户输入用户名时,列表会被输入填充,只有当我的页面重新加载时,我的页面才会更新。这是我迄今为止尝试过的代码。 我无法在外页重新加载的情况下更新数据。请建议我如何更新ui:在外页重新加载的情况下重复数据。提前谢谢。