Files
nairobi/lib/omniauth_wordpress.rb
2020-02-07 12:23:41 +07:00

41 lines
919 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