stytch 2.6.0 → 2.7.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 +11 -0
- data/lib/stytch/client.rb +3 -1
- data/lib/stytch/users.rb +6 -0
- data/lib/stytch/version.rb +1 -1
- data/lib/stytch/webauthn.rb +71 -0
- metadata +8 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 471f88289d40496c784ae4c59b23460ed0db628e98106e50dddb324a311f9957
|
4
|
+
data.tar.gz: 9292dbede554e351d20dbccf5dd62b4d4f4266a60f3a30fc7636b59c7164e905
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 86c1f5fedf5dfa62e807ce98bf960330de3dbe02b06fc750a9eeee4196e13e0b0d996589d33dec08f5aa4d4dcd64cd6388eced50fd9064c709b758c377bf5c64
|
7
|
+
data.tar.gz: bcb083e45706ccdc855db519a781c2f9254ccf639a72a91f65b034d119160b2c080959efc70587913b9dcae0c62d5402f73a69611e5e6f8095e1aac2329dc349
|
data/README.md
CHANGED
@@ -24,6 +24,17 @@ Or install it yourself as:
|
|
24
24
|
|
25
25
|
You can find your API credentials in the [Stytch Dashboard](https://stytch.com/dashboard/api-keys).
|
26
26
|
|
27
|
+
This client library supports all of Stytch's live products:
|
28
|
+
- [x] [Email Magic Links](https://stytch.com/docs/api/send-by-email)
|
29
|
+
- [x] [Embeddable Magic Links](https://stytch.com/docs/api/create-magic-link-overview)
|
30
|
+
- [x] [OAuth logins](https://stytch.com/docs/api/oauth-overview)
|
31
|
+
- [x] [SMS passcodes](https://stytch.com/docs/api/send-otp-by-sms)
|
32
|
+
- [x] [WhatsApp passcodes](https://stytch.com/docs/api/whatsapp-send)
|
33
|
+
- [x] [Email passcodes](https://stytch.com/docs/api/send-otp-by-email)
|
34
|
+
- [x] [Session Management (Beta)](https://stytch.com/docs/api/sessions-overview)
|
35
|
+
- [x] [WebAuthn (Beta)](https://stytch.com/docs/api/webauthn-overview)
|
36
|
+
|
37
|
+
### Example usage
|
27
38
|
Create an API client:
|
28
39
|
```ruby
|
29
40
|
client = Stytch::Client.new(
|
data/lib/stytch/client.rb
CHANGED
@@ -5,12 +5,13 @@ require_relative 'magic_links'
|
|
5
5
|
require_relative 'oauth'
|
6
6
|
require_relative 'otps'
|
7
7
|
require_relative 'sessions'
|
8
|
+
require_relative 'webauthn'
|
8
9
|
|
9
10
|
module Stytch
|
10
11
|
class Client
|
11
12
|
ENVIRONMENTS = %i[live test].freeze
|
12
13
|
|
13
|
-
attr_reader :users, :magic_links, :oauth, :otps, :sessions
|
14
|
+
attr_reader :users, :magic_links, :oauth, :otps, :sessions, :webauthn
|
14
15
|
|
15
16
|
def initialize(env:, project_id:, secret:, &block)
|
16
17
|
@api_host = api_host(env)
|
@@ -24,6 +25,7 @@ module Stytch
|
|
24
25
|
@oauth = Stytch::OAuth.new(@connection)
|
25
26
|
@otps = Stytch::OTPs.new(@connection)
|
26
27
|
@sessions = Stytch::Sessions.new(@connection)
|
28
|
+
@webauthn = Stytch::WebAuthn.new(@connection)
|
27
29
|
end
|
28
30
|
|
29
31
|
private
|
data/lib/stytch/users.rb
CHANGED
@@ -83,6 +83,12 @@ module Stytch
|
|
83
83
|
delete_request("#{PATH}/phone_numbers/#{phone_id}")
|
84
84
|
end
|
85
85
|
|
86
|
+
def delete_webauthn_registration(
|
87
|
+
webauthn_registration_id:
|
88
|
+
)
|
89
|
+
delete_request("#{PATH}/webauthn_registrations/#{webauthn_registration_id}")
|
90
|
+
end
|
91
|
+
|
86
92
|
private
|
87
93
|
|
88
94
|
def format_emails(emails)
|
data/lib/stytch/version.rb
CHANGED
@@ -0,0 +1,71 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'request_helper'
|
4
|
+
|
5
|
+
module Stytch
|
6
|
+
class WebAuthn
|
7
|
+
include Stytch::RequestHelper
|
8
|
+
|
9
|
+
PATH = '/v1/webauthn'
|
10
|
+
|
11
|
+
def initialize(connection)
|
12
|
+
@connection = connection
|
13
|
+
end
|
14
|
+
|
15
|
+
def register_start(
|
16
|
+
user_id:,
|
17
|
+
domain:,
|
18
|
+
user_agent: nil,
|
19
|
+
authenticator_type: nil
|
20
|
+
)
|
21
|
+
request = {
|
22
|
+
user_id: user_id,
|
23
|
+
domain: domain
|
24
|
+
}
|
25
|
+
|
26
|
+
request[:user_agent] = user_agent unless user_agent.nil?
|
27
|
+
request[:authenticator_type] = authenticator_type unless authenticator_type.nil?
|
28
|
+
|
29
|
+
post_request("#{PATH}/register/start", request)
|
30
|
+
end
|
31
|
+
|
32
|
+
def register(
|
33
|
+
user_id:,
|
34
|
+
public_key_credential:
|
35
|
+
)
|
36
|
+
request = {
|
37
|
+
user_id: user_id,
|
38
|
+
public_key_credential: public_key_credential
|
39
|
+
}
|
40
|
+
|
41
|
+
post_request("#{PATH}/register", request)
|
42
|
+
end
|
43
|
+
|
44
|
+
def authenticate_start(
|
45
|
+
user_id:,
|
46
|
+
domain:
|
47
|
+
)
|
48
|
+
request = {
|
49
|
+
user_id: user_id,
|
50
|
+
domain: domain
|
51
|
+
}
|
52
|
+
|
53
|
+
post_request("#{PATH}/authenticate/start", request)
|
54
|
+
end
|
55
|
+
|
56
|
+
def authenticate(
|
57
|
+
public_key_credential:,
|
58
|
+
session_token: nil,
|
59
|
+
session_duration_minutes: nil
|
60
|
+
)
|
61
|
+
request = {
|
62
|
+
public_key_credential: public_key_credential
|
63
|
+
}
|
64
|
+
|
65
|
+
request[:session_token] = session_token unless session_token.nil?
|
66
|
+
request[:session_duration_minutes] = session_duration_minutes unless session_duration_minutes.nil?
|
67
|
+
|
68
|
+
post_request("#{PATH}/authenticate", request)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stytch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- stytch
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-11-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -50,7 +50,7 @@ dependencies:
|
|
50
50
|
- - "<"
|
51
51
|
- !ruby/object:Gem::Version
|
52
52
|
version: '2.0'
|
53
|
-
description:
|
53
|
+
description:
|
54
54
|
email:
|
55
55
|
- support@stytch.com
|
56
56
|
executables: []
|
@@ -79,6 +79,7 @@ files:
|
|
79
79
|
- lib/stytch/sessions.rb
|
80
80
|
- lib/stytch/users.rb
|
81
81
|
- lib/stytch/version.rb
|
82
|
+
- lib/stytch/webauthn.rb
|
82
83
|
- stytch.gemspec
|
83
84
|
homepage: https://stytch.com
|
84
85
|
licenses:
|
@@ -86,7 +87,7 @@ licenses:
|
|
86
87
|
metadata:
|
87
88
|
homepage_uri: https://stytch.com
|
88
89
|
source_code_uri: https://github.com/stytchauth/stytch-ruby
|
89
|
-
post_install_message:
|
90
|
+
post_install_message:
|
90
91
|
rdoc_options: []
|
91
92
|
require_paths:
|
92
93
|
- lib
|
@@ -101,8 +102,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
101
102
|
- !ruby/object:Gem::Version
|
102
103
|
version: '0'
|
103
104
|
requirements: []
|
104
|
-
rubygems_version: 3.
|
105
|
-
signing_key:
|
105
|
+
rubygems_version: 3.1.4
|
106
|
+
signing_key:
|
106
107
|
specification_version: 4
|
107
108
|
summary: Stytch Ruby Gem
|
108
109
|
test_files: []
|