0

我正在使用内置身份验证的 azure app 服务将用户登录到我的 Web 应用程序。由于我有一些用户无需身份验证即可访问的页面,因此我在应用服务身份验证配置中允许匿名访问。

它按当前会话的预期工作。但是当用户关闭浏览器或打开一个新窗口时,身份验证就会丢失。用户需要重新登录。

有没有办法让用户保持登录状态?

我目前在做什么:

单击登录按钮时,将用户定向到 /.auth/login/microsoftaccount,成功登录后我调用 ./auth/me 以获取用户声明/详细信息,然后登录用户。然后我向https://appname.azurewebsites.net/.auth/login/microsoftaccount发了一个 http 帖子,以验证我从 /.auth/me 获得的令牌,并且我还从这个帖子请求中获得了一个会话令牌(我不知道有什么用)。

我使用应用服务设置的自定义标头在后端进行身份验证。应用服务认证文档

这是使用应用服务进行身份验证的正确方法吗?如果是这样,有什么方法可以让用户保持登录到应用服务身份验证,而不是在每次打开网站时都要求他们签名。

有没有办法缓存令牌?

4

1 回答 1

0

关闭浏览器或在新窗口中打开后需要重新登录是正常的,因为会话的生命周期是从打开窗口到关闭窗口。

您可以考虑使用 cookie 与 session 协调。会话在服务器端,我们看不到它,但我们可以设置超时值。cookie在客户端,我们可以保存一些认证信息来保持登录,但不安全。

于 2021-01-18T08:11:07.700 回答