インターネットを適当に検索して出てくるサンプルを動かしてみると、CVE-2015-9284対応前のバージョンのサンプルばかりで、/auth/twitterへアクセス時にForbiddenエラーが発生してしまう。
gem "sinatra" , "2.1.0" |
マニュアルによると、
By default, this uses rack-protection’s AuthenticityToken class to validate authenticity tokens. If you are using a rack based framework like sinatra, you can find an example of how to add authenticity tokens to your view here.
デフォルトではAuthenticityToken クラスを使用して認証トークンを検証します。
sinatra のようなrackベースのフレームワークを使用している場合の、認証トークンをviewに追加するサンプルがここにあります。
と記載があり、/auth/:provider
のrequest parameterとしてauthenticity_token
が必要とのこと。
値はrequest.env["rack.session"]["csrf"]
を。
こんな感じのが必要.
<form method="post" action="/auth/twitter"> |