omniauth-oauth2

An abstract OAuth2 strategy for OmniAuth.

Github stars Tracking Chart

OmniAuth OAuth2

Gem Version
Build Status
Dependency Status
Code Climate
Coverage Status
Security

This gem contains a generic OAuth2 strategy for OmniAuth. It is meant to serve
as a building block strategy for other strategies and not to be used
independently (since it has no inherent way to gather uid and user info).

Creating an OAuth2 Strategy

To create an OmniAuth OAuth2 strategy using this gem, you can simply subclass
it and add a few extra methods like so:

require 'omniauth-oauth2'

module OmniAuth
  module Strategies
    class SomeSite < OmniAuth::Strategies::OAuth2
      # Give your strategy a name.
      option :name, "some_site"

      # This is where you pass the options you would pass when
      # initializing your consumer from the OAuth gem.
      option :client_options, {:site => "https://api.somesite.com"}

      # These are called after authentication has succeeded. If
      # possible, you should try to set the UID without making
      # additional calls (if the user id is returned with the token
      # or as a URI parameter). This may not be possible with all
      # providers.
      uid{ raw_info['id'] }

      info do
        {
          :name => raw_info['name'],
          :email => raw_info['email']
        }
      end

      extra do
        {
          'raw_info' => raw_info
        }
      end

      def raw_info
        @raw_info, = access_token.get('/me').parsed
      end
    end
  end
end

That's pretty much it!

Overview

Name With Owneromniauth/omniauth-oauth2
Primary LanguageRuby
Program languageRuby (Language Count: 1)
Platform
License:MIT License
Release Count23
Last Release Namev1.7.3 (Posted on 2022-06-19 08:45:48)
First Release Namev1.0.0.pr1 (Posted on 2011-10-12 19:28:26)
Created At2011-09-28 16:48:31
Pushed At2024-01-12 20:21:20
Last Commit At2023-10-12 14:47:14
Stargazers Count491
Watchers Count11
Fork Count300
Commits Count229
Has Issues Enabled
Issues Count86
Issue Open Count39
Pull Requests Count48
Pull Requests Open Count11
Pull Requests Close Count28
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private
To the top