logto 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a84ba84aa4ec632c26f51845b19b030d0e193d5db43551927ee402fd7861ca63
4
- data.tar.gz: 62e89ab3e00a01560d55f718efdb72aca4f18325a99b84b4425b3504f7f22308
3
+ metadata.gz: 81feeacd15d38bb71cee968b66e223da0fa15f0c4d76a5fe736aadcc5c69d84b
4
+ data.tar.gz: 0b743d842a0af6d349c0a7a35937ee2c1a0145fa37582628b11f4e17afa48adc
5
5
  SHA512:
6
- metadata.gz: 52359dd0b6d5923460dfd7b31d6b01c67e5a0aa747616684e018458d8231c6fef7d07bb864de86837e8f3f6d8e1129e43a805532c508d6d132355e0cde9c137c
7
- data.tar.gz: 3a23d56c2fc5de83b5162859b2ea013724b193e8966060f8f47084ace7d8714f545726d5805be2a05184dbb2f7efb37a78b1dbd8c8a9dcbd422972857836dccc
6
+ metadata.gz: '078e1df48447021be0cb77684b6dbc89ce375ab6f1f21632f5c034343e5b7395268cc9d02bd2c94d57913b631f49d4323a9c6234fc5b9699f9ce53fd053f4d5b'
7
+ data.tar.gz: c56ee85e5cd8d637f6c17a97b4b0fd32d7c16d0ec535a44e9b40299377632e124fa3c4500e3d60737b8f8f059ac1b54e107def543e2f5c615e9d8711dd25195e
data/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  <picture>
4
4
  <source height="60" media="(prefers-color-scheme: dark)" srcset="https://github.com/logto-io/.github/raw/master/profile/logto-logo-dark.svg">
5
5
  <source height="60" media="(prefers-color-scheme: light)" srcset="https://github.com/logto-io/.github/raw/master/profile/logto-logo-light.svg">
6
- <img height="60" src="https://github.com/logto-io/logto/raw/master/logo.png" alt="Logto logo">
6
+ <img height="120" src="https://github.com/logto-io/logto/raw/master/logo.png" alt="Logto logo">
7
7
  </picture>
8
8
  </a>
9
9
  <br/><br/>
@@ -39,12 +39,13 @@ class LogtoClient
39
39
  # Triggers the sign-in experience.
40
40
  #
41
41
  # @param redirect_uri [String] The redirect URI that the user will be redirected to after the sign-in experience is completed.
42
- # @param first_screen [String] The first screen that the user will see in the sign-in experience. Can be `signIn` or `register`.
42
+ # @param first_screen [String] The first screen that the user will see in the sign-in experience. Can be `sign_in`, `register`, `reset_password`, `single_sign_on`, `identifier:sign_in` or `identifier:register`.
43
+ # @param identifiers [Array<String>] The identifiers to be used for the first screen, only effective when `first_screen` is `identifier:sign_in`, `identifier:register`, or `reset_password`. Available options are `email`, `phone`, `username`.
43
44
  # @param login_hint [String] The login hint to be used for the sign-in experience.
44
45
  # @param direct_sign_in [Hash] The direct sign-in configuration to be used for the sign-in experience. It should contain the `method` and `target` keys.
45
46
  # @param post_redirect_uri [String] The URI that the user will be redirected to after the redirect URI has successfully handled the sign-in callback.
46
47
  # @param extra_params [Hash] Extra parameters to be used for the sign-in experience.
47
- def sign_in(redirect_uri:, first_screen: nil, login_hint: nil, direct_sign_in: nil, post_redirect_uri: nil, extra_params: nil)
48
+ def sign_in(redirect_uri:, first_screen: nil, identifiers: nil, login_hint: nil, direct_sign_in: nil, post_redirect_uri: nil, extra_params: nil)
48
49
  code_verifier = LogtoUtils.generate_code_verifier
49
50
  code_challenge = LogtoUtils.generate_code_challenge(code_verifier)
50
51
 
@@ -58,6 +59,7 @@ class LogtoClient
58
59
  resources: @config.resources,
59
60
  prompt: @config.prompt,
60
61
  first_screen: first_screen,
62
+ identifiers: identifiers,
61
63
  login_hint: login_hint,
62
64
  direct_sign_in: direct_sign_in,
63
65
  extra_params: extra_params
@@ -33,20 +33,20 @@ class LogtoClient
33
33
  end
34
34
 
35
35
  def get(key)
36
- @session[getSessionKey(key)]
36
+ @session[get_session_key(key)]
37
37
  end
38
38
 
39
39
  def set(key, value)
40
- @session[getSessionKey(key)] = value
40
+ @session[get_session_key(key)] = value
41
41
  end
42
42
 
43
43
  def remove(key)
44
- @session.delete(getSessionKey(key))
44
+ @session.delete(get_session_key(key))
45
45
  end
46
46
 
47
47
  protected
48
48
 
49
- def getSessionKey(key)
49
+ def get_session_key(key)
50
50
  "logto_#{@app_id || "default"}_#{key}"
51
51
  end
52
52
  end
@@ -88,7 +88,22 @@ class LogtoCore
88
88
  LogtoUtils.parse_json_safe(response.body, UserInfoResponse)
89
89
  end
90
90
 
91
- def generate_sign_in_uri(client_id:, redirect_uri:, code_challenge:, state:, scopes: nil, resources: nil, prompt: nil, first_screen: nil, interaction_mode: nil, login_hint: nil, direct_sign_in: nil, extra_params: nil, include_reserved_scopes: true)
91
+ def generate_sign_in_uri(
92
+ client_id:,
93
+ redirect_uri:,
94
+ code_challenge:,
95
+ state:,
96
+ scopes: nil,
97
+ resources: nil,
98
+ prompt: nil,
99
+ first_screen: nil,
100
+ identifiers: nil,
101
+ interaction_mode: nil,
102
+ login_hint: nil,
103
+ direct_sign_in: nil,
104
+ extra_params: nil,
105
+ include_reserved_scopes: true
106
+ )
92
107
  parameters = {
93
108
  QUERY_KEY[:client_id] => client_id,
94
109
  QUERY_KEY[:redirect_uri] => redirect_uri,
@@ -117,6 +132,8 @@ class LogtoCore
117
132
  parameters[QUERY_KEY[:interaction_mode]] = interaction_mode
118
133
  end
119
134
 
135
+ parameters[QUERY_KEY[:identifier]] = identifiers.join(" ") if identifiers&.any?
136
+
120
137
  extra_params&.each do |key, value|
121
138
  parameters[key] = value
122
139
  end
@@ -22,6 +22,7 @@ class LogtoCore
22
22
  login_hint: "login_hint",
23
23
  direct_sign_in: "direct_sign_in",
24
24
  first_screen: "first_screen",
25
+ identifier: "identifier",
25
26
  interaction_mode: "interaction_mode",
26
27
  error: "error",
27
28
  error_description: "error_description"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logto
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Silverhand Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-13 00:00:00.000000000 Z
11
+ date: 2024-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jwt