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 +4 -4
- data/README.md +1 -1
- data/lib/logto/client/index.rb +4 -2
- data/lib/logto/client/index_storage.rb +4 -4
- data/lib/logto/core/index.rb +18 -1
- data/lib/logto/core/index_constants.rb +1 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 81feeacd15d38bb71cee968b66e223da0fa15f0c4d76a5fe736aadcc5c69d84b
|
4
|
+
data.tar.gz: 0b743d842a0af6d349c0a7a35937ee2c1a0145fa37582628b11f4e17afa48adc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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="
|
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/>
|
data/lib/logto/client/index.rb
CHANGED
@@ -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 `
|
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[
|
36
|
+
@session[get_session_key(key)]
|
37
37
|
end
|
38
38
|
|
39
39
|
def set(key, value)
|
40
|
-
@session[
|
40
|
+
@session[get_session_key(key)] = value
|
41
41
|
end
|
42
42
|
|
43
43
|
def remove(key)
|
44
|
-
@session.delete(
|
44
|
+
@session.delete(get_session_key(key))
|
45
45
|
end
|
46
46
|
|
47
47
|
protected
|
48
48
|
|
49
|
-
def
|
49
|
+
def get_session_key(key)
|
50
50
|
"logto_#{@app_id || "default"}_#{key}"
|
51
51
|
end
|
52
52
|
end
|
data/lib/logto/core/index.rb
CHANGED
@@ -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(
|
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
|
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.
|
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-
|
11
|
+
date: 2024-09-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jwt
|