Class: Vkit::Core::AuthClient
- Inherits:
-
Object
- Object
- Vkit::Core::AuthClient
- Defined in:
- lib/vkit/core/auth_client.rb
Constant Summary collapse
- DEFAULT_BASE_URL =
ENV["VKIT_ENDPOINT"] || "http://localhost:3000"
Instance Method Summary collapse
- #discover ⇒ Object
-
#initialize(base_url: DEFAULT_BASE_URL) ⇒ AuthClient
constructor
A new instance of AuthClient.
- #logout(token) ⇒ Object
- #password_login(email:, password:) ⇒ Object
- #poll_cli_login(poll_token) ⇒ Object
- #start_cli_login ⇒ Object
- #whoami(token) ⇒ Object
Constructor Details
#initialize(base_url: DEFAULT_BASE_URL) ⇒ AuthClient
Returns a new instance of AuthClient.
11 12 13 |
# File 'lib/vkit/core/auth_client.rb', line 11 def initialize(base_url: DEFAULT_BASE_URL) @base_url = base_url.chomp("/") end |
Instance Method Details
#discover ⇒ Object
15 16 17 18 19 |
# File 'lib/vkit/core/auth_client.rb', line 15 def discover uri = uri_for("/auth/cli") res = http_get(uri) parse_json(res) end |
#logout(token) ⇒ Object
73 74 75 76 77 78 79 |
# File 'lib/vkit/core/auth_client.rb', line 73 def logout(token) uri = uri_for("/api/users/sign_out") req = Net::HTTP::Delete.new(uri) req["Authorization"] = "Bearer #{token}" http_request(uri, req, allow_non_200: true) end |
#password_login(email:, password:) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/vkit/core/auth_client.rb', line 42 def password_login(email:, password:) uri = uri_for("/api/users/sign_in") req = Net::HTTP::Post.new(uri) req["Content-Type"] = "application/json" req.body = JSON.dump( user: { email: email, password: password } ) res = http_request(uri, req) body = parse_json(res) { token: body["token"], user: body["user"] } end |
#poll_cli_login(poll_token) ⇒ Object
31 32 33 34 35 36 37 38 39 40 |
# File 'lib/vkit/core/auth_client.rb', line 31 def poll_cli_login(poll_token) uri = uri_for("/auth/cli/poll") req = Net::HTTP::Post.new(uri) req["Content-Type"] = "application/json" req.body = JSON.dump( poll_token: poll_token ) http_request(uri, req, allow_non_200: true) end |
#start_cli_login ⇒ Object
21 22 23 24 25 26 27 28 29 |
# File 'lib/vkit/core/auth_client.rb', line 21 def start_cli_login uri = uri_for("/auth/cli/start") req = Net::HTTP::Post.new(uri) req["Content-Type"] = "application/json" req.body = "{}" res = http_request(uri, req) parse_json(res) end |
#whoami(token) ⇒ Object
62 63 64 65 66 67 68 69 70 71 |
# File 'lib/vkit/core/auth_client.rb', line 62 def whoami(token) uri = uri_for("/auth/whoami") req = Net::HTTP::Get.new(uri) req["Authorization"] = "Bearer #{token}" res = http_request(uri, req) body = parse_json(res) body["user"] end |