天天看點

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的時候才需要進行使用者名和密碼的驗證。修改之後通路頁面如下:

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