gpt4 book ai didi

sproutcore - 如何在SproutCore应用程序中处理身份验证状态

转载 作者:行者123 更新时间:2023-12-03 13:38:08 26 4
gpt4 key购买 nike

Peter Kniestedt提出的一个问题(现在已删除)中,他想知道在哪里以及如何设置计时器以检查用户的身份。

他的问题是一个较大问题的一部分(此问题的标题)。因为我认为回答这个问题很重要,所以我创建了一个新问题,作为一种在一个地方收集所有重要信息的方法。

最佳答案

这是使用状态图的一种典型情况,更具体地说是使用并发状态。

如果您还不知道,SproutCore包含一个非常有用的库,称为SC.Statechart,这是一种处理应用程序状态的方法,它比通过使用 bool 属性更容易控制,因为它也像响应者以及控制者。

在这种情况下,您需要一个状态图,该状态图在根中具有两个并发状态:一个用于处理身份验证周围的状态,另一个用于处理应用程序的其余部分。

MyApp.statechart = SC.Statechart.create({
rootState: SC.State.design({
substatesAreConcurrent: true,
AUTH: SC.State.design({
initialSubstate: 'CHECKAUTH',
CHECKAUTH: SC.State.design({
}),
LOGIN: SC.State.design({
}),
AUTHENTICATING: SC.State.design({
}),
AUTHENTICATED: SC.State.design({
}),
}),
APPMAIN: SC.State.design({
})
})
});

这应该如何工作:
当您的应用程序启动时,它将立即进入两种状态,一种是APPMAIN状态,即与应用程序本身相关的状态。另一个是AUTH状态,它将立即进入初始子状态CHECKAUTH,该状态将检查用户是否具有有效的 session 。如果不是,则此状态应进入LOGIN状态,该状态负责显示登录屏幕。当用户随后执行登录时,LOGIN状态将转换为AUTHENTICATING状态,该状态将由服务器进行检查。如果此尝试无效或不正确,则AUTHENTICATING状态应转换为LOGIN,否则应转换为AUTHENTICATED。

要回答原始问题,此问题基于:如果您需要一个计时器来定期检查身份验证是否仍然有效,则该计时器应处于AUTHENTICATED状态。如果失败,则可以立即转换为LOGIN状态,以显示登录屏幕。

像这样使用状态图,可以防止用户必须重新加载或退出应用程序才能再次登录,从而可能会丢失数据。简而言之,它可以带来更好的用户体验。

关于sproutcore - 如何在SproutCore应用程序中处理身份验证状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30187236/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com