Sinatraでユーザー認証にAuthlogicを使う
Sinatra使ってみたいなと思って、Sinatra+Slim+ActiveRecordをやってます。
認証は自分で作るのも多いみたいだけど既存のライブラリを使ってみることに。
AuthlogicがDeviseよりシンプルな感じで良さそう。
GitHub - binarylogic/authlogic: A simple ruby authentication solution.
基本これそのままactionやhelperなどを持ってきて、migration動かしてviewsのhamlをslim化したら動いた。
GitHub - ehsanul/Sinatra-Authlogic-Template: An Authentication Solution for Sinatra
例えばlogin.hamlはこんな感じに変更。
## login.slim p Login form method="post" div p | email: input type='text' size='20' name='user[email]' div p | password: input type='text' size='20' name='user[password]' div p | Remember me: input type='checkbox' value='1' name='user[remember_me]' input type='submit' value='Login'
ユーザー認証はAuthlogicだけど、権限による認可は全然提供していないので自分でなんとかしていいかも。
GitHub - ryanb/cancan: Authorization Gem for Ruby on Rails.
こんなライブラリもあって面白そうだけど。
slimは見た目簡潔なんだけど
input type='text' size='20' name='user[email]'
より
input :type => 'text', size => '20', :name => 'user[email]'
とか書けた方がRubyっぽくていいなーと思った。
でも、そうなるとHamlに戻ってしまう悲しさ。