如果你发布你的blog。那么其他人就可以随便修改和添加博客了。
Rails提供了一个非常简单的http认证系统,可以非常有帮助的解决这种情况。
在PostsController里面我们需要一个方法阻止那些没有授权的用户的操作。
这时候我们可以使用http_basic_authenticate_with 方法。
这个方法通过的情况下才能处理http请求。
我们的例子里面需要除了index,show之外的方法都需要认证。
- class PostsController < ApplicationController
- http_basic_authenticate_with :name => "dhh", :password => "secret", :except => :index
- # GET /posts
- # GET /posts.json
- def index
- @posts = Post.all
- respond_to do |format|
- # snipped for brevity
我们也需要删除评论的时候需要权限。
- class CommentsController < ApplicationController
- http_basic_authenticate_with :name => "dhh", :password => "secret", :only => :destroy
- def create
- @post = Post.find(params[:post_id])
- # snipped for brevity
现在我们如果创建一个新的post。将会显示下面的页面。