Sinatraでユーザー認証にAuthlogicを使う

Sinatra使ってみたいなと思って、Sinatra+Slim+ActiveRecordをやってます。

認証は自分で作るのも多いみたいだけど既存のライブラリを使ってみることに。
AuthlogicDeviseよりシンプルな感じで良さそう。
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に戻ってしまう悲しさ。