星期日, 2月 11, 2018

被問到要怎樣思考一個登入系統介面

這問題真的太大哉問了...
先假設 後端 API 是 RESTfull 而非 GraphQL 好了

# 後端

建立好 user table
就帳號跟密碼兩個欄位好了


  • 密碼使用什麼加密方法(PBKDF2, scrypt, bcrypt) 鹽巴的長度
  • 登入後系統產生 token , 然後 CSRF 也是要關注的事情。
  • Token expiration 的機制。
  • 後端跟前端不同主機的 CORS 設定
  • 防機器人暴力測試的機制。

現在大部分後端框架跟工具都可以協助處理這些議題就是。

# 基礎建設


  • 主機也別忘記設置 HTTPS,credentials 如何保管。
  • 在 API Server 前面是否要有 HTTP Server (nginx) 來做控管。
  • 主機機密資料是否要建立 vault 來隔離。
  • 備原機制為何?
  • 誰可以存取主機登入權限。


# 前端

  • 前端跟後端 API 的 CORS 設定
  • 前端如何 persist 登入 token (cookie...)
  • 前端的 Deploy 流程(是否能跟後端分開 Deploy )
  • Remember me 跟後端的搭配的實做
  • 忘記密碼的流程
  • 沒有權限存取的頁面控管...


想到慢慢補,還有很多就是..XD