我有一个角度的应用程序使用Restangular和ui.router.state.
这是我目前在做的
>我有一个端点/令牌接受用户名/通行证并给出
备份承载令牌和一些用户信息.
>成功登录后,将用户信息和令牌保存到全局var,user.current中,同时我还设置了Restangular的默认标头以包含承载令牌:
Restangular.setDefaultHeaders({Authorization:“Bearer”data.access_token});
>当用户想要访问一个具有requiredAuth = true的路由时(在routeprovider中设置为自定义数据,如Access routeProvider’s route properties)我查看user.current来查看它的设置.
一个.如果设置了user.current,请将其带到路由.
湾如果user.current为空,或者如果令牌过期(基于时间)将其发送到/ login
问题/关注
>如果我Ctrl Ctrl我失去了我的用户信息,用户必须重新登录.
一个.我应该将承载令牌或凭据保存到cookie或某些东西中,并且在user.current == null的情况下尝试抓住用户服务.
我甚至接近这个权利吗?看起来好像有100%使用AngularJS的人会想要做的,但是我找不到符合我情况的例子.似乎Angular会有内置的机制来处理这些auth路由业务的一些…
>什么时候需要得到一个新的令牌/验证当前的令牌?我只是让具有devtools的任何人设置像isAuthorized = true这样他们可以访问/ admin / importantThings但是然后让/ api /重要的事情的调用失败,因为他们没有有效的承载令牌或我应该验证在我甚至让他们到达这条路线之前,他们有一个有效的标记?
>您可以将其放在
localStorage(始终保留)或
sessionStorage(浏览器关闭时清除). Cookie在技术上也是一种可能性,但不适合您的用例(您的后端检查单独的标题而不是cookie) >我想有很多方法来皮肤一只猫. >始终依赖于服务器端检查.客户端检查可能会提高一些可用性,但您永远不会依赖它们.如果您有很多按钮导致登录屏幕,那么如果您保持客户端检查,则会更快.如果这比规则更多的是异常,那么您可以在调用后端获得401未授权时重定向到登录页面.
原文链接:https://www.f2er.com/angularjs/140693.html