Catalyst::Plugin::Authenticationの新しい版

複数の認証条件が使えるようになってた。
認証方法1:mail_addressとpassword
認証方法2:serialとpassword
みたいな。


例えばUserテーブルに持ってる情報で認証するサンプル。

設定

authentication:
  default_realm: use_mail
  realms:
    use_mail:
      credential:
        class: Password
        password_field: password
        password_type: clear
      store:
        class: DBIx::Class
        user_class: DBIC::User
        id_field: mail_address
    use_serial:
      credential:
        class: Password
        password_field: password
        password_type: clear
      store:
        class: DBIx::Class
        user_class: DBIC::User
        id_field: serial

認証

  • mail_addressとpassword
$c->authenticate( { mail_address => $mail_address, password => $password }, 'use_mail' )
  • serialとpassword
$c->authenticate( { serial => $serial, password => $password }, 'use_serial' )

第二引数はrealmである。省略可で、省略した場合はdefault_realmが使われる。


これで正しいはずなんだが、第二引数を省略して、use_serialで認証しても通った件。おい。