nodejs负责后端的逻辑, http服务器是用nginx
使用angularjs搭建
'
+---------+ +-----------+ +--------+ +------+
| | | | | | | |
| +-------> +------> +----> |
| | | | | | | |
| | | | | | | |
| browser | | nginx | | nodeJs | | DB |
| | | | | | | |
| <-------+ <------+ <----+ |
| | | | | | | |
| | | | | | | |
+---------+ +--+-----^--+ +--------+ +------+
| |
| |
+--v-----+--+
| |
| |
| HTML |
| |
| CSS |
| |
| JS |
| |
+-----------+
'
RESTFUL接口肯定是要做权限, 用是token的方式, 后端根据token来判断用户的权限, 然后返回数据。
~~HTML这样的文件有必要加权限的认证吗?比如有些页面是不想直接让人看到的, 但现在很明显, HTML是不经过nodejs验证权限的。~~
那如果范围扩大到一些其他的静态文件, 比如一些doc文件, 那么这个权限判定应该怎么走?
把路由文件变量写在在服务器端在登录之后给浏览器发送第一个html的地方,登录的时候把这个用户能访问的文件都列出来,不能访问的设置为404,然后ng在设置路由的时候去读这些文件,如果用户直接访问不能去的路由,就会显示404页面了。
也可以把用户标识码写在这个文件里,通过ng修改全局的ajax也不是不可以。
我觉得你想多了,单页应用跟普通的网页,在安全性方面没有任何不同,都是用ajax方式和服务器端交互
至于RESTful只是一种架构风格,不会因为用了这个风格,就对安全性造成什么性质上的改变
http://stackoverflow.com/questions/15938730/require-authentication-for-directory-except-one-page-with-passport-js-node-j
你需要auth_basic
对安全性是没有任何影响的
举个例子说,管理员页面 admin.html 普通用户就算可以构造url进入这个页面,由于没有合法token,各种操作和获取数据也是失败的.
由此可见,安全性只取决于后台restful对token的权限校验