nodejs負(fù)責(zé)后端的邏輯, http服務(wù)器是用nginx
使用angularjs搭建
'
+---------+ +-----------+ +--------+ +------+
| | | | | | | |
| +-------> +------> +----> |
| | | | | | | |
| | | | | | | |
| browser | | nginx | | nodeJs | | DB |
| | | | | | | |
| <-------+ <------+ <----+ |
| | | | | | | |
| | | | | | | |
+---------+ +--+-----^--+ +--------+ +------+
| |
| |
+--v-----+--+
| |
| |
| HTML |
| |
| CSS |
| |
| JS |
| |
+-----------+
'
RESTFUL接口肯定是要做權(quán)限, 用是token的方式, 后端根據(jù)token來(lái)判斷用戶的權(quán)限, 然后返回?cái)?shù)據(jù)。
~~HTML這樣的文件有必要加權(quán)限的認(rèn)證嗎?比如有些頁(yè)面是不想直接讓人看到的, 但現(xiàn)在很明顯, HTML是不經(jīng)過(guò)nodejs驗(yàn)證權(quán)限的。~~
那如果范圍擴(kuò)大到一些其他的靜態(tài)文件, 比如一些doc文件, 那么這個(gè)權(quán)限判定應(yīng)該怎么走?
把路由文件變量寫(xiě)在在服務(wù)器端在登錄之后給瀏覽器發(fā)送第一個(gè)html的地方,登錄的時(shí)候把這個(gè)用戶能訪問(wèn)的文件都列出來(lái),不能訪問(wèn)的設(shè)置為404,然后ng在設(shè)置路由的時(shí)候去讀這些文件,如果用戶直接訪問(wèn)不能去的路由,就會(huì)顯示404頁(yè)面了。
也可以把用戶標(biāo)識(shí)碼寫(xiě)在這個(gè)文件里,通過(guò)ng修改全局的ajax也不是不可以。
我覺(jué)得你想多了,單頁(yè)應(yīng)用跟普通的網(wǎng)頁(yè),在安全性方面沒(méi)有任何不同,都是用ajax方式和服務(wù)器端交互
至于RESTful只是一種架構(gòu)風(fēng)格,不會(huì)因?yàn)橛昧诉@個(gè)風(fēng)格,就對(duì)安全性造成什么性質(zhì)上的改變
http://stackoverflow.com/questions/15938730/require-authentication-for-directory-except-one-page-with-passport-js-node-j
你需要auth_basic
對(duì)安全性是沒(méi)有任何影響的
舉個(gè)例子說(shuō),管理員頁(yè)面 admin.html 普通用戶就算可以構(gòu)造url進(jìn)入這個(gè)頁(yè)面,由于沒(méi)有合法token,各種操作和獲取數(shù)據(jù)也是失敗的.
由此可見(jiàn),安全性只取決于后臺(tái)restful對(duì)token的權(quán)限校驗(yàn)