Angular security 和對server side API 保護

以我理解,現在web app 的session control 已放在front end 來做處理,
可是我不明白如何不用server side session 來做server side API access control?
即是如何令到某些server side API 要login 之後先可以access 到呢?
網上有人提出用JSON Web Token, 可是這個方法好像每次access server side API
都要做一次validation, 這樣是不是每次access server side API 都要讀一次DB 來做validation 呢?
不知道Angular有沒有相關的機制提供呢?

但是 Server Side 如果不每個 Request 都做一次 Validation 的話,這才危險吧?!

那麼背後的DB 會很忙碌? 真的是這樣做嗎?

使用 JWT 驗證,驗證跟 DB 沒有關係吧,要不要重新了解一下 JWT 的驗證方式呢?

可是官網又說用middle ware 來做, 好迷惘!!!

這裡的 middleware 是指在每次發 request 時,自動將登入時取得的 token 加到 header 內,減少每次都要手動處理的工作. 跟後端沒有關係,而是 http request 加工的行為

另外一個觀點,token 只是一個資訊,不會儲存到 DB 內,jwt 本身就包含有效性的資訊。

這裡是 JWT 的基本介紹

1個讚

我不太明白為什麼JWT會安全?
既然任何program 都可以decode 到,而且又知道用什麼Algorithm來encrypt 資料,
即是說任何人都可以自制一條key 來蒙騙server API ,而且網上已經有人提議,
別再用JWT 來做session control,究竟如何是好呢?

可以不用存取 DB,因為透過雜湊演算法就可以知道該 JWT Token 是否有沒有被修改
一般 Token 內的資訊不會是機敏資料,如果你擔心,JWT 還是可以做加密,各大套件都有實作,而 JWT 的安全性在於可自我驗證是否被修改過

沒有銀子彈,重點是情境適不適合