Si fueras a publicar tu blog en línea, cualquier persona podría agregar, editar y eliminar artículos o eliminar comentarios.
Rails provee un sistema muy simple de autenticación por HTTP que funcionaría muy bien en esta situación.
Necesitamos una forma de bloquear el acceso a ciertas acciones en el controlador
PostsController si la persona no está autenticada, aquí podemos usar el método
de Rails http_basic_authenticate_with, que permite acceso a la acción
solicitada si el método retorna true.
Para usar el sistema de autenticación, lo especificamos en la parte inicial de
PostsController, en este caso, queremos autenticar al usuario en cada una de
las acciones, excepto index y show, así lo escribimos:
class PostsController < ApplicationController
http_basic_authenticate_with :name => "dhh", :password => "secret", :except => [:index, :show]
def index
@posts = Post.all
# cortado por brevedad
También queremos limitar la eliminación de comentarios a los usuarios autenticados, así
que en CommentsController escribimos:
class CommentsController < ApplicationController
http_basic_authenticate_with :name => "dhh", :password => "secret", :only => :destroy
def create
@post = Post.find(params[:post_id])
# cortado por brevedad
Ahora si intentas crear un nuevo artículo, vas a ser recibido con una ventana de diálogo de autenticación HTTP básica.
