トークンで認証する。

deviseを使ったアプリでトークン認証をしようとしていて、過去に機能があったものの3.1から廃止されているのを知りました。

Devise 3.1: Now with more secure defaults | Plataformatec Blog

Since the usage of the authenticatable token can vary considerably in between applications, each requiring different safety guarantees, we have decided to remove TokenAuthenticatable from Devise, allowing users to pick the best option.

アプリごとに要求されるセキュリティレベルが違うはずで、ライブラリの標準機能として画一的にするのはやはり問題なので各々実装してくださいね、という感じ。

そしてこのエントリから代替案としてリンクされているのがこちらのページです。
This gist describes two of the available solutions.

1番はトークンのみで認証して、2番はトークンの他にもうひとつ(メールアドレス)を組み合わせる方法になっています。
いろいろ議論が交わされているのですが、gonzalo-bulnesさんがまとめてgem作ったよ、てのが最新ステータス。

simple_token_authentication | RubyGems.org | your community gem host

Simple (but safe) token authentication for Rails apps or API with Devise.

2番のメールアドレスとトークンを使用する方法で、クエリーパラメータだけでなくリクエストヘッダでの認証にも対応しているようです。
ソースを読んだところ大きくなく、なにかあっても自分で実装して回避したりプルリク投げたりできそうなので、使わせていただくことにしました。

タイトルとURLをコピーしました