Class: OmniAuth::Strategies::GitHub
- Defined in:
- lib/omniauth/strategies/oauth2/github.rb
Overview
OAuth 2.0 based authentication with GitHub. In order to sign up for an application, you need to register an application and provide the proper credentials to this middleware.
Instance Attribute Summary
Attributes inherited from OAuth2
#client_id, #client_options, #client_secret, #options
Instance Method Summary collapse
- #auth_hash ⇒ Object
-
#initialize(app, client_id = nil, client_secret = nil, options = {}, &block) ⇒ GitHub
constructor
A new instance of GitHub.
- #user_data ⇒ Object
- #user_info ⇒ Object
Methods inherited from OAuth2
Constructor Details
#initialize(app, client_id = nil, client_secret = nil, options = {}, &block) ⇒ GitHub
Returns a new instance of GitHub.
13 14 15 16 17 18 19 20 |
# File 'lib/omniauth/strategies/oauth2/github.rb', line 13 def initialize(app, client_id=nil, client_secret=nil, ={}, &block) = { :site => 'https://api.github.com', :authorize_url => 'https://github.com/login/oauth/authorize', :token_url => 'https://github.com/login/oauth/access_token' } super(app, :github, client_id, client_secret, , , &block) end |
Instance Method Details
#auth_hash ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/omniauth/strategies/oauth2/github.rb', line 22 def auth_hash OmniAuth::Utils.deep_merge( super, { 'uid' => user_data['id'], 'user_info' => user_info, 'extra' => { 'user_hash' => user_data, }, } ) end |
#user_data ⇒ Object
34 35 36 37 |
# File 'lib/omniauth/strategies/oauth2/github.rb', line 34 def user_data @access_token.[:mode] = :query @data ||= @access_token.get('/user').parsed end |
#user_info ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/omniauth/strategies/oauth2/github.rb', line 39 def user_info { 'nickname' => user_data['login'], 'email' => user_data['email'], 'name' => user_data['name'], 'urls' => { 'GitHub' => "http://github.com/#{user_data['login']}", 'Blog' => user_data['blog'], }, } end |