在 Rails 實作基本驗證

內建的 vs 自己做

基本驗證那篇,再這個放進去有點太長了,想說獨立出來。對 Rails 有興趣的話再來看 XD

STEP1:開新專案

rails new demo_basic_auth_rails -T

STEP2:啟動看看

這邊故意開一個不一樣的 PORT,如果你同時有做本文那邊的 express 範例,瀏覽器會覺得 localhost:5000 已經驗證過,就會直接跳過驗證。

rails server -p 4999
溫馨的內建首頁XD

STEP3:開一個 controller 以及資源路徑

開一個 controller,這邊取名 CourseFilesController

rails g controller CourseFiles

並且增加幾個 route。這邊分成「講義網站首頁」、「微積分講義」、「線性代數講義」。

STEP4: 加上一些頁面

到 views/course_files 裡面,新增三個路徑的頁面。

  • 課程講義首頁
  • 微積分講義
  • 線性代數講義

範例如下:

STEP5: 加上基本驗證

這邊範例是:查看課程首頁不需要登入,但是想要存取微積分或是線性代數都要驗證。

Rails 的 Controller 其實有內建這個功能,是由 ActionController::HttpAuthentication::Basic 這個模組引入。

你如果跟我一樣,想自己做看看的話:

就是說透過 before_action ,在 calculuslinear_algebra 執行以前,會先執行 basic_auth 檢查。

STEP6: 試試看驗證

打開瀏覽器,到 localhost:4999/course_files

點擊微積分講義,會跳小視窗。

如果你是用內建的基本驗證,按取消時會看到內建訊息

如果你跟我一樣自己做的話,則會看到我們自訂的「請先登入才可以看!」

如果我們輸入正確的帳號密碼,就可以瀏覽微積分講義:

這樣就完成了~

Reference

--

--

袁浩 Harry Yuan

Software Engineer | Ruby on Rails 喜歡學習前後端技術。希望文章白話到阿嬤都看得懂。