我正在设置一个HTML5和JavaScript Web应用程序,以使用JavaScript客户端库使用Azure移动服务表。我已经成功通过MicrosoftAccount身份提供程序成功完成了身份验证设置。在加载时,我的应用程序检查用户是否已经登录,或者我们是否在本地存储了令牌和用户名。如果为true,我将隐藏登录按钮,并显示注销按钮,然后继续加载应用程序数据。
我的问题是,当本地存储的令牌到期时,我的应用程序仍认为该用户已登录。因此,当我请求表数据时,会收到401未经授权的HTTP响应。
是否有一个优美的模式来续订过期的令牌,而不会在每次令牌过期时都让用户负担重新登录的负担?
最佳答案
不幸的是,您每次都需要登录用户。令牌必须具有与其关联的生存期。在某些客户端平台上,您可以通过单符号流获得更长的生命周期,但是这些通常不适用于HTML。常见的模式是在收到401后重新触发您的登录代码。 Here是一篇博客文章,显示了移动服务托管SDK的方法。相同的概念应适用于JS。