我使用azure应用程序服务内置的身份验证来登录用户到我的web应用程序。因为我有一些页面,用户可以访问没有身份验证,我已经允许匿名访问在应用程序服务认证配置。
在当前会话中按预期工作。但是当用户关闭浏览器或打开一个新窗口时,身份验证就丢失了。用户需要重新登录。
是否有办法保持用户登录?
我现在在做什么:
登录按钮点击,引导用户到/。auth/login/microsoftaccount,登录成功后调用。/auth/me获取用户声明/详细信息,然后登录用户。然后,我向https://appname.azurewebsites.net/.auth/login/microsoftaccount发送一个http post,以验证从/获得的令牌。auth/me和我也从这个post请求中获得一个会话令牌(我不知道该用它来做什么)。
我在后端使用应用服务设置的自定义报头进行身份验证。应用服务授权文档
这是使用app service进行身份验证的正确方法吗?如果是这样,我们是否有办法让用户登录到应用服务授权,而不是每次打开网站都要求他们签名?
是否有办法缓存令牌?
正常您需要在关闭浏览器或打开新窗口后重新登录,因为会话的生命周期是从打开窗口到关闭窗口。
你可以考虑使用cookie来协调会话. 会话在服务器端,我们看不到它,但我们可以设置超时值。Cookie在客户端,我们可以保存一些认证信息来保持登录,但这是不安全的。