deviseのomni_authとdevise_token_authのomni_authを両立する手順
動機
docker環境のrailsでVue.js使って開発。
deviseでomni_authはできる。
devise_token_authでomni_authはできる。
どちらも実装してdeviseのomni_authをすると、なぜか401 unauthorizedエラー。
なんとかして両立させたい。deviseのomni_authでログイン後にSPAを表示したいから。
手順
下記ページにあるようにdeviseのモジュールを2回記述すると両立可能です。
Devise Omniauth and DeviseTokenAuth Omniauth · Issue #666 · lynndylanhurley/devise_token_auth · GitHub
- deviseとdevise_token_authを両立させる実装をする。
netで調べてください。 - user.rbのinclude DeviseTokenAuth::Concerns::Userの前後にdeviseのモジュール(同じもの)を記述する。
devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable, :omniauthable, omniauth_providers: [:twitter] include DeviseTokenAuth::Concerns::User devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable, :omniauthable, omniauth_providers: [:twitter]
何故か上記手順でdeviseのomni_authログインが可能になります。
また、config/initializers/devise_token_auth.rbに下記を設定していれば
config.enable_standard_devise_support = true
APIがaccess_token なしでも使えるようになります。
もっといい方法知ってる方、教えて下さい。