我正在尝试构建一个需要用户登录的AngularJS应用程序.
当他们第一次访问应用程序时,他们将被重定向到登录页面(http://domain.my:3000/login).当用户输入他的用户名和密码时,将调用web服务(http://domain.my:4788/WebServices/user/login?username=XXX&password=YYYY),该服务返回带有用户id,名称等的JSON数据.需要存储在哪里(cookies/localstorage?).
我怎么能这样做呢?我是否需要创建一个服务器(可能在nodejs上)来处理对Web服务的请求,或者angularjs服务是否足够?
app.service("UserService", function($http) {
}
Run Code Online (Sandbox Code Playgroud)
我的想法是创建一个角度服务,可以完成所有工作(在localstorage中创建cookie /条目),而登录控制器将使用$ http对用户进行身份验证.
我已经使用本地策略或像https://github.com/fnakstad/angular-client-side-auth这样的示例调查了Passport ,但我不认为它们涵盖了我想要实现的目标,或者我不能只是了解它们.
我希望这不是一般问题,并提前感谢任何回复.
我目前有一个看起来像这样的州:
.state('test-event-list', {
parent: 'private',
url: '/test-events?search&sortc&sortd&pagesize&page&select&status',
reloadOnSearch: false,
views: {
'view@body': {
templateUrl: 'app/config-test/test-event/list.html',
controller: require('./config-test/test-event/list')
}
},
data: {
auth: true
}
})
Run Code Online (Sandbox Code Playgroud)
我使用$ location.search()在查询字符串中设置不同的参数,如排序,列表大小和列表页面.
例如,URL可能如下所示:
/test-events?pagesize=25&page=1
Run Code Online (Sandbox Code Playgroud)
我有一个菜单,其中包含以下链接以选择测试事件列表:
<a ui-sref="test-event-list" ui-sref-opts="{reload: true, inherit: false}">Tests</a>
Run Code Online (Sandbox Code Playgroud)
在状态"test-event-list"中,单击此链接,部分执行我想要的操作:重置列表的参数并重新加载页面.但它没有做的是从查询字符串中删除params.
我怎样才能从URL中删除"?pagesize = 25&page = 1"?
ui-router提供的继承标志似乎没有做太多.我使用的是最新版本的ui-router(0.2.15).
我正在使用带有Angular 5的Hammer.js来支持使用鼠标和触摸进行滑动.问题是触摸动作应该用两个手指而不是一个手指完成.
是否可以在Hammer.js中支持1和2指针进行滑动(左和右)?
理想情况下,我还想区分鼠标和触摸,因为"鼠标"事件返回maxPointers:1(总是?).
有点在PHP和Regex中的noobie,我从Web服务收到以下内容:
test:002005@1111@333333@;10205@2000@666666@;002005@1111@55555@;
Run Code Online (Sandbox Code Playgroud)
上面的行是3个数字的序列,重复3次.我想获得每个序列的第3个数字,我相信最好的课程(除了3000次爆炸)将是preg_match_all但我在艰难的时间环绕着RegEx.
最终结果应如下所示:
Array
(
[0] => 333333
[1] => 666666
[2] => 55555
)
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助.