Ruby on Rails——一個簡單的認證

我們建立了一個blog,並且加入了comment功能,但是現在我們發現誰都可以訪問它,任何人都有CRUD的權限。現在,我們通過一個簡單的示例來學習一下怎麼添加權限認證。當然,Rails提供了許多關於認證的內容,實際項目中要比現在的示例複雜一些。

Rails提供了一個簡單的http認證系統,通過http_basic_authenticate_with方法來進行控制。

我們在article_controller.rb加入http_basic_authenticate_with,

class ArticlesController < ApplicationController

 

  http_basic_authenticate_with name: "dhh", password: "secret", except: [:index, :show]

 

  def index

    @articles = Article.all

  end

 

  # snippet for brevity

except表示出了index和show之外,訪問其他的頁面都需要用戶名和密碼的驗證。同樣,我們需要把comment_controller.rb修改如下:

class CommentsController < ApplicationController

 

  http_basic_authenticate_with name: "dhh", password: "secret", only: :destroy

 

  def create

    @article = Article.find(params[:article_id])

    # ...

  end

 

  # snippet for brevity

only表示只有在destroy的時候才需要進行用戶名和密碼的驗證。修改之後訪問頁面如下:

Basic HTTP Authentication Challenge

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章