Files
nairobi/lib/omni_auth/strategies/wordpress.rb
Javi Martín 1cf529b134 Make Devise find the strategy class automatically
Since we're already setting `wordpress_oauth2` using the `option :name`
command in the `OmniAuth::Strategies::Wordpress` class, Devise can
automatically find the strategy. However, it wasn't working because we
were passing a string instead of a symbol.
2024-04-11 19:08:02 +02:00

41 lines
910 B
Ruby

# This code is based on this gem https://github.com/jwickard/omniauth-wordpress-oauth2-plugin
require "omniauth-oauth2"
module OmniAuth
module Strategies
class Wordpress < OmniAuth::Strategies::OAuth2
option :name, :wordpress_oauth2
option :client_options, {}
uid { raw_info["ID"] }
info do
{
name: raw_info["display_name"],
email: raw_info["user_email"],
nickname: raw_info["user_nicename"],
urls: { "Website" => raw_info["user_url"] }
}
end
extra do
{ raw_info: raw_info }
end
def callback_url
full_host + script_name + callback_path
end
def raw_info
@raw_info ||= obtain_raw_info
end
def obtain_raw_info
access_token.get("/oauth/me", params: { "Authorization" => "Bearer #{access_token.token}" }).parsed
end
end
end
end