TyM*_*ayn 66 authentication couchdb angularjs angular-ui ionic-framework
首先,我不是专业人士.
在我成为更好的开发人员的过程中,我正在努力了解需要什么,以及如何为Ionic-Framework应用程序创建注册/登录.
大多数单页面应用程序(SPA)在节点服务器上处理身份验证,该服务器也为客户端提供HTML.在我的情况下,手机本身将提供HTML,所以我猜我可能会遇到一些COR问题.
我知道Ionic-Framework使用状态和基于angular-client-side-auth repo我应该在我改变应用程序中的状态时进行身份验证.
我有一个初始的应用程序设置但现在我有点困惑从这里去.
我拥有的工具:
我的问题:
感谢您帮助我成为更好的开发人员.
Var*_*ath 78
好的,还有很多东西要回答.但简单的回答是保持简单和认证,就像你常规的网络应用程序一样.
在常规网络应用中:
在移动应用中:
标准方法是什么?
我应该使用Node.JS作为数据库的代理吗?
我是怎么回事呢?
我的潜在障碍是什么?
CORS如何与混合应用程序配合使用?
我缺少什么?
IonicFramework只是一个前端HTML5框架.它本身不能使你成为一个移动应用程序.它只会给你一个很好的用户界面.IonicFramework为您提供了一些很好的javascript功能,它使用angular实现.因此,为了充分利用离子,你应该精通angularJs.学习角度是非常值得的,所以去吧.
实际的应用程序由Cordova编译.Cordova将您的常规html/css/javascript文件打包并将其打包到android apk或iphone ipa中,以便它们可以作为本机应用程序安装在相应的操作系统上.
Cordova将允许您访问本机手机功能,如相机,画廊,联系人等.
基于令牌的身份验证:我相信是另一种选择.它是一种更清晰,更安全的处理身份验证的方法,现在很容易获得.
有关更多信息,请查看以下链接:
使用基于令牌的方法有什么好处?
跨域/ CORS: cookie + CORS在不同的域中不能很好地发挥作用.基于令牌的方法允许您对任何域上的任何服务器进行AJAX调用,因为您使用HTTP标头来传输用户信息.无状态(也称为服务器端可伸缩性):不需要保留会话存储,令牌是一个传递所有用户信息的自我连接实体.该州的其他地方居住在客户端的cookie或本地存储中.
CDN:您可以从CDN(例如javascript,HTML,图像等)提供应用的所有资产,而您的服务器端只是API.解耦:您不依赖于特定的身份验证方案.令牌可能在任何地方生成,因此可以从任何地方调用您的API,只需一种方法来验证这些调用.
移动就绪:当您开始使用本机平台(iOS,Android,Windows 8等)时,使用安全API(您必须处理cookie容器)时,cookie并不理想.采用基于令牌的方法可以简化这一过程.CSRF:因为您不依赖于cookie,所以您不需要防止跨站点请求(例如,您的站点无法生成POST请求并重新使用现有的身份验证cookie,因为没有) .
性能:我们在这里没有提出任何硬性的基准测试,但是网络往返(例如,在数据库上查找会话)可能比计算HMACSHA256以验证令牌和解析其内容需要更多的时间.
登录页面不是特殊情况:如果您使用Protractor编写功能测试,则无需处理任何特殊情况进行登录.基于标准:您的API可以接受标准的JSON Web令牌(JWT).这是一个标准,有多个后端库(.NET,Ruby,Java,Python,PHP)和支持其基础架构的公司(例如Firebase,Google,Microsoft).例如,Firebase允许其客户使用任何身份验证机制,只要您生成具有某些预定义属性的JWT,并使用共享密钥签名以调用其API.
Luc*_*cia 45
nathvarun给出了一个非常完整的答案,但我想在我的应用程序中分享我为身份验证所做的步骤.
email+ password到服务器token在服务器中生成一个并将其发送回应用程序email+ tokeninlocalStorageemail+ tokenviaPOSTtrue执行该方法,如果false我向应用程序发送错误(401)令人高兴的是,当应用程序打开时,你可以得到email+ token从localStorage,发送到服务器,如果令牌是确定该用户重定向到主画面,否则重定向到登录.然后,每当用户清除应用程序的缓存时,他就会被重定向到登录屏幕.