トークン認証でDeviseを使用していますが、データベースでトークンを暗号化したいと考えています。DBからのトークンの保存/取得を工夫するヒントを誰か教えてもらえますか?
私はattr_encrypted gem も使用しています。これを使用すると、適切な場所が見つかったら暗号化全体がかなり簡単になります。
編集:
ここで説明されているようにトークン認証を実装しました: http://zyphdesignco.com/blog/simple-auth-token-example-with-devise
ユーザーモデルに次の行を追加しました。これにより、authentication_token が暗号化されます。
attr_encrypted :authentication_token, :key => 'a secret key', :attribute => 'authentication_token'
実行してログインしようとすると、次のエラー メッセージが表示されます。
Completed 500 Internal Server Error in 364ms
SystemStackError - stack level too deep:
(gem) actionpack-3.2.13/lib/action_dispatch/middleware/reloader.rb:70:in `'
devise と attr_encrypted との競合があり、両方が authentication_token メソッドの再定義をめぐって争っているようです (ヒント @sbfaulkner の thx)
誰かが同様の問題を抱えていて、解決策を知っているのではないでしょうか?