blogyuji.developerによる落書き。プログラミングやカメラをメインにだらだらと書いてます。6750で規定されているHTTPのAuthorizationヘッダーのBearerスキームを使ってトークンによる認証・認可をするためのRackミドルウェアのGem「rack-bearer_auth」を作りました。yujideveloper/rack-bearer_authどういうGemか?APIの認証・認可でトークンを使いたいことってありますよね。2.0とかを使ってもいいのですが、ちょっとしたトークンとかで済ませたい時とかありますよね。そんな時にこのGemの出番です。Railsをはじめ、SinatraやHanamiなんかでも使えるんじゃないかと思います。2.0に限らず汎用的なHTTP認可に使用して良いようです。サンプルコードRailsで使う場合はconfig/application.rbに以下のような設定を追加します。endend上記のような設定を入れておくと、リクエストパスとメソッドが一致した場合に、AuthorizationヘッダーのBearerスキームに所定のトークンが指定されているかを検証するようになります。上記の例では、/api/fooにPOST/PATCH/DELETEでリクエストされた場合にはsome_tokenが設定されているかを検証するようになり、/api/barのあらゆるHTTPメソッドでaccess_tokensテーブルに指定されたトークンがあるかを検証するようになります。マッチしないパスやメソッドの場合はトークンの検証は行われません。おわりに実装するにあたって、下記のQiitaの記事をだいぶ参考にさせてもらいました。わかりやすい記事をありがとうございます。QiitaRFC規定に沿ってないところや、何か気が付いた点がありましたら、PRやIssueなどで教えてもらえると嬉しいです。