Javascript 同步调用,直到用户通过angular验证为访问者

Javascript 同步调用,直到用户通过angular验证为访问者,javascript,angularjs,authentication,Javascript,Angularjs,Authentication,我的问题是理论性的,而不是怎么做。我想知道专家们是如何处理我将在下面描述的情况的 我有一个水疗中心,使用角和微风。身份验证是基于令牌的。我在Angular中设置了一个拦截器,它负责请求包含令牌,如果服务器返回401,那么用户将被重定向到登录页面。Breeze使用与Angular相同的$http实例 当应用程序启动时,它会向服务器发出1-5个请求,并且由于用户未经过身份验证,因此请求不包含令牌,因此应用程序将获得401并将触发重定向。我计划将每个用户都作为授权很少的访问者进行身份验证,或者作为管理

我的问题是理论性的,而不是怎么做。我想知道专家们是如何处理我将在下面描述的情况的

我有一个水疗中心,使用角和微风。身份验证是基于令牌的。我在Angular中设置了一个拦截器,它负责请求包含令牌,如果服务器返回401,那么用户将被重定向到登录页面。Breeze使用与Angular相同的$http实例

当应用程序启动时,它会向服务器发出1-5个请求,并且由于用户未经过身份验证,因此请求不包含令牌,因此应用程序将获得401并将触发重定向。我计划将每个用户都作为授权很少的访问者进行身份验证,或者作为管理用户权限的注册用户进行身份验证

我的问题是,当第一个401结果返回时,我不知道哪一个将首先返回,重定向将被触发,但返回时的其余结果会在控制台中抛出错误。我真的不喜欢它,也不喜欢不注意这些异常的方法

对我来说,很明显,我需要向服务器发出请求,以了解用户是否经过身份验证。我想提出一个请求,第一个就被解雇。在它返回之前,不会激发对服务器的其他请求。由于Angular的$http无法设置为同步工作,因此我需要一个具有标志的服务,在标志为false之前,其他服务无法进行调用。但这似乎是一个有点笨拙的解决方案

问题是这样的情况是如何处理的? 你们有处理这种情况的博客吗


提前谢谢你的帮助

你可以看看这个角度拦截器的实现,也许可以使用它


一旦用户通过身份验证,当初始请求由于401问题而失败时,此拦截器具有重试机制。

设置$http请求时,可以传入可选的“config”对象。此配置对象具有超时属性,您可以为其提供承诺。解决此承诺后,您的$http请求将被中止

当您收到第一个401响应时,您可以使用此概念“取消”任何未完成的$http请求,然后将用户重定向到您需要的任何身份验证过程


我大约80%的时间完成了一篇关于这个主题的博文:

谢谢@Chandermani!所描述的典型场景与我描述的基本相同。我要试一试!我认为你的答案是正确的。再次感谢你的帮助!我做了我想做的。谢谢@jonnyknowsbest!真的很期待你看完博客!我觉得你的建议目前很有意思,没有用。