Madogiwa Blog

主に技術系の学習メモに使っていきます。

Ruby: Deviseで現在有効になっているOmniAuthのproviderのリストを取得する

Deviseで現在の環境で有効になっているproviderを確認して有効なものだけのログインボタンを出す(例:開発環境でだけdeveloperストラテジを有効化しているので開発環境でだけ導線を出したい) 等の場合に現在有効なproviderを取得したいときのやり方をMEMOしておきます✍

deviseのバージョンは4.7.1です。

やりかた

以下でDeviseで現在有効になっているOmniAuthのproviderのリスト取得することが出来ます。

Devise.omniauth_providers
#=> [:developer, :twitter]

該当ソースは以下

https://github.com/heartcombo/devise/blob/45b831c4ea5a35914037bd27fe88b76d7b3683a4/lib/devise.rb#L329-L331

callback先とかも含めた全体的な情報は以下で取得出来るようです👀

Devise.omniauth_configs

https://github.com/heartcombo/devise/blob/45b831c4ea5a35914037bd27fe88b76d7b3683a4/lib/devise.rb#L271-L272

便利✨