Class: HaveAPI::Client::Authentication::Base
- Inherits:
-
Object
- Object
- HaveAPI::Client::Authentication::Base
- Defined in:
- lib/haveapi/client/authentication/base.rb
Overview
Base class for all authentication providers.
Authentication providers may reimplement only methods they need. You do not have to reimplement all methods.
Class Method Summary collapse
-
.register(name) ⇒ Object
Register this class as authentication provider with
name
.
Instance Method Summary collapse
-
#initialize(communicator, description, opts, &block) ⇒ Base
constructor
A new instance of Base.
-
#load(hash) ⇒ Object
Load auth provider attributes from previous #save call.
-
#request_headers ⇒ Object
Called for each request.
-
#request_payload ⇒ Object
Called for each request.
-
#request_query_params ⇒ Object
Called for each request.
-
#resource ⇒ Object
Return RestClient::Resource instance.
-
#save ⇒ Object
Returns a hash of auth provider attributes to be saved e.g.
-
#setup ⇒ Object
Called right after initialize.
Constructor Details
#initialize(communicator, description, opts, &block) ⇒ Base
Returns a new instance of Base.
32 33 34 35 36 37 38 39 |
# File 'lib/haveapi/client/authentication/base.rb', line 32 def initialize(communicator, description, opts, &block) @communicator = communicator @desc = description @opts = opts @block = block setup end |
Class Method Details
.register(name) ⇒ Object
Register this class as authentication provider with name
. The name
must be the same as is used in CLI auth provider (if any) and on server side. All providers have to register.
27 28 29 |
# File 'lib/haveapi/client/authentication/base.rb', line 27 def register(name) HaveAPI::Client::Communicator.register_auth_method(name, Kernel.const_get(to_s)) end |
Instance Method Details
#load(hash) ⇒ Object
Load auth provider attributes from previous #save call.
77 78 79 |
# File 'lib/haveapi/client/authentication/base.rb', line 77 def load(hash) @opts = hash end |
#request_headers ⇒ Object
Called for each request. Returns a hash of HTTP headers.
63 64 65 |
# File 'lib/haveapi/client/authentication/base.rb', line 63 def request_headers {} end |
#request_payload ⇒ Object
Called for each request. Returns a hash of parameters send in request body.
58 59 60 |
# File 'lib/haveapi/client/authentication/base.rb', line 58 def request_payload {} end |
#request_query_params ⇒ Object
Called for each request. Returns a hash of query parameters.
52 53 54 |
# File 'lib/haveapi/client/authentication/base.rb', line 52 def request_query_params {} end |
#resource ⇒ Object
Return RestClient::Resource instance. This is mainly for HTTP basic auth.
47 48 49 |
# File 'lib/haveapi/client/authentication/base.rb', line 47 def resource end |
#save ⇒ Object
Returns a hash of auth provider attributes to be saved e.g. in a file to be used later, without the user providing credentials again. You may wish to save a username or password (not recommended), tokens or whatever authentication provider needs to authenticate user without his input.
72 73 74 |
# File 'lib/haveapi/client/authentication/base.rb', line 72 def save @opts end |
#setup ⇒ Object
Called right after initialize. Use this method to initialize provider.
42 43 44 |
# File 'lib/haveapi/client/authentication/base.rb', line 42 def setup end |