Class: Legion::Auth::OauthCallback
- Inherits:
-
Object
- Object
- Legion::Auth::OauthCallback
- Defined in:
- lib/legion/auth/oauth_callback.rb
Constant Summary collapse
- DEFAULT_TIMEOUT =
120- LOCALHOST =
'127.0.0.1'
Instance Attribute Summary collapse
-
#port ⇒ Object
readonly
Returns the value of attribute port.
-
#redirect_uri ⇒ Object
readonly
Returns the value of attribute redirect_uri.
Instance Method Summary collapse
- #close ⇒ Object
-
#initialize(timeout: DEFAULT_TIMEOUT) ⇒ OauthCallback
constructor
A new instance of OauthCallback.
- #wait_for_callback ⇒ Object
Constructor Details
#initialize(timeout: DEFAULT_TIMEOUT) ⇒ OauthCallback
Returns a new instance of OauthCallback.
15 16 17 18 19 20 |
# File 'lib/legion/auth/oauth_callback.rb', line 15 def initialize(timeout: DEFAULT_TIMEOUT) @timeout = timeout @server = TCPServer.new(LOCALHOST, 0) @port = @server.addr[1] @redirect_uri = "http://#{LOCALHOST}:#{@port}/callback" end |
Instance Attribute Details
#port ⇒ Object (readonly)
Returns the value of attribute port.
13 14 15 |
# File 'lib/legion/auth/oauth_callback.rb', line 13 def port @port end |
#redirect_uri ⇒ Object (readonly)
Returns the value of attribute redirect_uri.
13 14 15 |
# File 'lib/legion/auth/oauth_callback.rb', line 13 def redirect_uri @redirect_uri end |
Instance Method Details
#close ⇒ Object
32 33 34 |
# File 'lib/legion/auth/oauth_callback.rb', line 32 def close @server.close rescue nil # rubocop:disable Style/RescueModifier end |
#wait_for_callback ⇒ Object
22 23 24 25 26 27 28 29 30 |
# File 'lib/legion/auth/oauth_callback.rb', line 22 def wait_for_callback Timeout.timeout(@timeout) do client = @server.accept request_line = client.gets parse_callback(request_line, client) end ensure @server.close rescue nil # rubocop:disable Style/RescueModifier end |