在 Rails 實作基本驗證
內建的 vs 自己做
May 23, 2021
基本驗證那篇,再這個放進去有點太長了,想說獨立出來。對 Rails 有興趣的話再來看 XD
STEP1:開新專案
rails new demo_basic_auth_rails -T
STEP2:啟動看看
這邊故意開一個不一樣的 PORT,如果你同時有做本文那邊的 express 範例,瀏覽器會覺得 localhost:5000
已經驗證過,就會直接跳過驗證。
rails server -p 4999
STEP3:開一個 controller 以及資源路徑
開一個 controller,這邊取名 CourseFilesController
。
rails g controller CourseFiles
並且增加幾個 route。這邊分成「講義網站首頁」、「微積分講義」、「線性代數講義」。
STEP4: 加上一些頁面
到 views/course_files 裡面,新增三個路徑的頁面。
- 課程講義首頁
- 微積分講義
- 線性代數講義
範例如下:
STEP5: 加上基本驗證
這邊範例是:查看課程首頁不需要登入,但是想要存取微積分或是線性代數都要驗證。
Rails 的 Controller 其實有內建這個功能,是由 ActionController::HttpAuthentication::Basic
這個模組引入。
你如果跟我一樣,想自己做看看的話:
就是說透過 before_action ,在 calculus
跟 linear_algebra
執行以前,會先執行 basic_auth
檢查。
STEP6: 試試看驗證
打開瀏覽器,到 localhost:4999/course_files
。
點擊微積分講義,會跳小視窗。
如果你是用內建的基本驗證,按取消時會看到內建訊息
如果你跟我一樣自己做的話,則會看到我們自訂的「請先登入才可以看!」
如果我們輸入正確的帳號密碼,就可以瀏覽微積分講義:
這樣就完成了~