主訴
Rails APIモードで devise_token_auth, omniauth-twitter のgemを利用した認証を実装しようとしています。
http://localhost:3000/auth/twitter にアクセスして、
Twitterにリダイレクトして認証するところまではできたのですが、 client, uid などの ヘッダーが返ってきません。
色々いじってみたのですが、お手上げの状態です。
何か、この辺りが怪しいのでは?などのアドバイスがいただけると嬉しいです。
手順
以下のサイトの手順にそって実装。
https://note.com/mumii/n/n4d8bf6a473c6
デフォルトのGem以外で追加したもの
Gemfile
1gem 'rack-cors' 2gem 'devise_token_auth' 3gem 'omniauth-twitter'
#config/initializers/omiauth.rb OmniAuth.config.allowed_request_methods = [:post, :get] OmniAuth.config.silence_get_warning = true Rails.application.config.middleware.use OmniAuth::Builder do provider :twitter, ENV["TWITTER_API_KEY"], ENV["TWITTER_API_SECRET"] end
#config/initializers/devise_token_auth.rb DeviseTokenAuth.setup do |config| config.change_headers_on_each_request = false config.token_cost = Rails.env.test? ? 4 : 10 config.headers_names = {:'access-token' => 'access-token', :'client' => 'client', :'expiry' => 'expiry', :'uid' => 'uid', :'token-type' => 'token-type' } end
#config/initializers/cors.rb Rails.application.config.middleware.insert_before 0, Rack::Cors do allow do origins '*' resource '*', headers: :any, expose: ['access-token', 'expiry', 'token-type', 'uid', 'client'], methods: [:get, :post, :put, :patch, :delete, :options, :head] end end
環境
- ruby '3.0.2'
- rails 6.1.4.
あなたの回答
tips
プレビュー