带有用于Auth /(re)路由的API的Angular + RESTful客户端通信
这在几个不同的问题和一些不同的教程中都有介绍,但是我所遇到的所有以前的资源并没有完全解决问题。
简而言之,我需要
- 通过POST从登录
http://client.foo
到http://api.foo/login
- 为用户提供提供
logout
路由的“已登录” GUI /组件状态 - 用户注销/注销时能够“更新” UI。 这是最令人沮丧的
- 保护我的路由以检查身份验证状态(他们是否需要),并将用户相应地重定向到登录页面
我的问题是
- 每次导航到另一个页面时,我都需要打电话
api.foo/status
确定用户是否已登录。(我正在使用Express进行路由的ATM)这会导致Angular确定类似问题ng-show="user.is_authenticated"
- 成功登录/注销后,我需要刷新页面(我不想这样做)以填充诸如之类的内容
{{user.first_name}}
,或者在注销的情况下清空该值。
// Sample response from `/status` if successful
{
customer: {...},
is_authenticated: true,
authentication_timeout: 1376959033,
...
}
我尝试过的
- http://witoldsz.github.io/angular-http-auth/ 1
- http://www.frederiknakstad.com/authentication-in-single-page-applications-with-angular-js/ 2
- https://github.com/mgonto/restangular(对于我的一生,我不知道该如何
POST
处理post data
和不该使用query params
。文档对此没有任何帮助。
为什么我觉得自己迷失了方向
- 似乎每个教程都依赖于某些数据库(大量的Mongo,Couch,PHP + MySQL,无限广告)解决方案,并且没有一个纯粹依靠与RESTful API的通信来保持登录状态。登录后,将发送其他POST / GET
withCredentials:true
,所以这不是问题 - 我找不到任何使用Angular + REST + Auth,没有后端语言的示例/教程/仓库。
我不太骄傲
诚然,我是Angular的新手,如果我以一种荒谬的方式来研究它,也不会感到惊讶。如果有人提出其他选择,我会很高兴-即使是汤到坚果。
我使用的Express
主要是因为我真的很喜欢Jade
和Stylus
-我没有结婚Express
“路由和会放弃它,如果我想要做的是唯一可能与角的路由。
在此先感谢您提供任何帮助。而且,请不要问我Google,因为我有26页紫色链接。;-)
1个该解决方案依赖于Angular的$ httpBackend模拟,目前尚不清楚如何使其与真实服务器对话。
2这是最接近的,但是由于我已经需要使用现有的API进行身份验证,因此无法使用护照的'localStrategy',并且编写OAUTH服务似乎是疯狂的……只有我打算使用。