authrocket 3.4.1 → 3.5.1
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/CHANGELOG.md +8 -0
- data/LICENSE +1 -1
- data/README.md +18 -13
- data/lib/authrocket/api/api_config.rb +1 -1
- data/lib/authrocket/api/railtie.rb +4 -0
- data/lib/authrocket/api/version.rb +1 -1
- data/lib/authrocket/domain.rb +1 -1
- data/lib/authrocket/hook.rb +4 -2
- data/lib/authrocket/invitation.rb +1 -0
- data/lib/authrocket/jwt_key.rb +1 -1
- data/lib/authrocket/realm.rb +1 -0
- data/lib/authrocket/user.rb +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 11f10407754023d6dabb0f77e9f2cbaa3b88b3b395a211ee636701e09b162e38
|
4
|
+
data.tar.gz: b110dce919195fd8150dfbf2e55b7817e8631fcbd9ab5bb98397aa9242fa3169
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4ffe744ab81e3abb1183b217736c115209d1a5cdcbf1012e070f797b50aff27bc9252ee69f5fde09581562e608ce44dcdf48c9dc2f40829268089b1239ab1c04
|
7
|
+
data.tar.gz: 29b69ca32f0e8a2a0ef304712c8201815861bb45ecc4ee18d42c6b3f4f46d75cf1ac9b70baee181c6244ab8e682e7129d1c86284371309aac11e9e843f498d2b
|
data/CHANGELOG.md
CHANGED
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -102,7 +102,7 @@ Your AuthRocket API key. Required to use the API (but not if only performing JWT
|
|
102
102
|
Used to perform JWT signing verification of login tokens. Not required if validating all tokens using the API instead. Also not required if LOGINROCKET_URL is set and RS256 keys are being used, as public keys will be auto-retrieved. This is a realm-specific value, so like `AUTHROCKET_REALM`, set it on a per-use basis if using multiple realms.
|
103
103
|
|
104
104
|
`AUTHROCKET_REALM = rl_SAMPLE`
|
105
|
-
Sets an application-wide default realm ID. If you're using a single realm, this is definitely easiest. Certain multi-tenant apps might
|
105
|
+
Sets an application-wide default realm ID. If you're using a single realm, this is definitely easiest. Certain multi-tenant apps might use multiple realms. In this case, don't set this globally, but include it as part of the `:credentials` set for each API method.
|
106
106
|
|
107
107
|
`AUTHROCKET_URL = https://api-e2.authrocket.com/v2`
|
108
108
|
The URL of the AuthRocket API server. This may vary depending on which cluster your service is provisioned on.
|
@@ -130,7 +130,7 @@ The built-in Rails integration tries to handle as much for you as possible. Howe
|
|
130
130
|
|
131
131
|
#### Logins
|
132
132
|
|
133
|
-
The Rails integration handles logins on any path by detecting the presence of `?token=...`. It will process the login and then immediately redirect back to the same path without `?token
|
133
|
+
The Rails integration handles logins on any path by detecting the presence of `?token=...`. It will process the login and then immediately redirect back to the same path without `?token=`. This helps prevent browsers and bookmarks from accidentally saving or caching the login token.
|
134
134
|
|
135
135
|
Likewise, the built-in handler for `before_action :require_login` will automatically redirect to LoginRocket when the user is not currently logged in. `?redirect_uri=<current_path>` will be automatically included so that the user returns to the same place post-login. You can override this behavior by replacing `before_login`.
|
136
136
|
|
@@ -141,7 +141,7 @@ Likewise, the built-in handler for `before_action :require_login` will automatic
|
|
141
141
|
end
|
142
142
|
end
|
143
143
|
|
144
|
-
AuthRocket will verify the domain + path to redirect to. You can configure this at Realm -> Settings -> Connected Apps -> (edit) -> Login URLs. The first URL listed will be the default, so it should generally
|
144
|
+
AuthRocket will verify the domain + path to redirect to. You can configure this at Realm -> Settings -> Connected Apps -> (edit) -> Login URLs. The first URL listed will be the default, so it should generally match your "just logged in" path.
|
145
145
|
|
146
146
|
Paths are validated as "equal or more specific". That is, if Login URLs contains "https://my.app/manage", then any path starting with "/manage" will be allowed, but "/other" will not be allowed. If you want to allow any path at your domain, add "https://my.app/" (since "/" will match any path).
|
147
147
|
|
@@ -163,7 +163,7 @@ The default route for logout is `/logout`. To override it, add an initializer fo
|
|
163
163
|
|
164
164
|
AuthRocket::Api.use_default_routes = false
|
165
165
|
|
166
|
-
Then add your own
|
166
|
+
Then add your own route to `config/routes.rb`:
|
167
167
|
|
168
168
|
get 'mylogout' => 'logins#logout'
|
169
169
|
|
@@ -172,7 +172,7 @@ Then add your own routes to `config/routes.rb`:
|
|
172
172
|
|
173
173
|
AuthRocket's default login controller automatically sets a logout message using `flash`.
|
174
174
|
|
175
|
-
You may customize this, or other logout behavior, by creating your own LoginsController and
|
175
|
+
You may customize this, or other logout behavior, by creating your own LoginsController and inheriting from AuthRocket's controller:
|
176
176
|
|
177
177
|
class LoginsController < AuthRocket::ArController
|
178
178
|
def logout
|
@@ -181,18 +181,18 @@ You may customize this, or other logout behavior, by creating your own LoginsCon
|
|
181
181
|
end
|
182
182
|
end
|
183
183
|
|
184
|
-
If you wish to replace all of the login logic, create a new
|
184
|
+
If you wish to replace all of the login logic, create a new controller that doesn't inherit from `AuthRocket::ArController` (and also override the routes, as per above). You may wish to look at `ArController` as a reference.
|
185
185
|
|
186
186
|
|
187
187
|
|
188
188
|
## Verifying login tokens
|
189
189
|
|
190
|
-
If you're not using the streamlined Rails integration, you'll need to verify
|
190
|
+
If you're not using the streamlined Rails integration, you'll need to verify login tokens on your own (unless you're using the API to authenticate directly).
|
191
191
|
|
192
192
|
|
193
193
|
#### JWT verification
|
194
194
|
|
195
|
-
AuthRocket's login tokens use the JWT standard and are cryptographically signed. Verifying the signature is extremely fast. Here's
|
195
|
+
AuthRocket's login tokens use the JWT standard and are cryptographically signed. Verifying the signature is extremely fast. Here's an example:
|
196
196
|
|
197
197
|
def current_user
|
198
198
|
@_current_user ||= AuthRocket::Session.from_token(session[:ar_token])&.user
|
@@ -211,7 +211,7 @@ AuthRocket also supports Managed Sessions, which enables you to enforce logouts,
|
|
211
211
|
|
212
212
|
For better performance (and to avoid API rate limits), you will want to cache the results of the API call for 3-15 minutes.
|
213
213
|
|
214
|
-
If
|
214
|
+
If using Rails, `Rails.cache` is used by default. Otherwise, you must configure a cache store for AuthRocket. In either case, see Caching below.
|
215
215
|
|
216
216
|
|
217
217
|
#### Initial login
|
@@ -251,7 +251,7 @@ To set a global locale for your app, add this to your AuthRocket initializer:
|
|
251
251
|
|
252
252
|
#### Per-request locale
|
253
253
|
|
254
|
-
If your app supports multiple locales, then you'll likely want to set the locale on a per-request basis. Add a `headers: {accept_language: 'en'}`
|
254
|
+
If your app supports multiple locales, then you'll likely want to set the locale on a per-request basis. Add a `headers: {accept_language: 'en'}` argument to relevant API calls:
|
255
255
|
|
256
256
|
AuthRocket::User.create(
|
257
257
|
email: 'jdoe@example.com',
|
@@ -267,7 +267,7 @@ The AuthRocket gem is capable of caching the results of GET requests. Since auth
|
|
267
267
|
|
268
268
|
To enable caching, a cache store must be configured. On Rails, `authrocket` automatically uses Rails.cache, so simply ensure that's setup appropriately.
|
269
269
|
|
270
|
-
If not using Rails (or if you
|
270
|
+
If not using Rails (or if you wish to use a different cache store even when using Rails), add this to your AuthRocket initializer:
|
271
271
|
|
272
272
|
cache_options = {} # app specific
|
273
273
|
AuthRocket::Api.cache_store = RedisCacheStore.new(cache_options)
|
@@ -291,9 +291,14 @@ Next, enable the cache for specific API calls:
|
|
291
291
|
|
292
292
|
|
293
293
|
|
294
|
-
##
|
294
|
+
## Usage
|
295
295
|
|
296
|
-
|
296
|
+
Documentation is provided on our site:
|
297
|
+
|
298
|
+
* [Rails Integration Guide](https://authrocket.com/docs/integration/rails)
|
299
|
+
* [Ruby Integration Guide](https://authrocket.com/docs/integration/ruby)
|
300
|
+
* [Ruby SDK Docs](https://authrocket.com/docs/sdks/ruby) (Expands on this README)
|
301
|
+
* [API Docs with Ruby examples](https://authrocket.com/docs/api#core-api)
|
297
302
|
|
298
303
|
|
299
304
|
|
@@ -42,7 +42,7 @@ module AuthRocket
|
|
42
42
|
|
43
43
|
self.status_page = 'https://status.authrocket.com/'
|
44
44
|
|
45
|
-
self.auth_header_prefix = '
|
45
|
+
self.auth_header_prefix = 'authrocket'
|
46
46
|
|
47
47
|
self.credentials_error_message = %Q{Missing API credentials or URL. Set default credentials using "AuthRocket::Api.credentials = {api_key: YOUR_API_KEY, url: AR_API_URL}"}
|
48
48
|
|
data/lib/authrocket/domain.rb
CHANGED
data/lib/authrocket/hook.rb
CHANGED
@@ -14,12 +14,13 @@ module AuthRocket
|
|
14
14
|
|
15
15
|
def self.event_types
|
16
16
|
%w( invitation.org.created invitation.org.updated invitation.org.invited invitation.org.accepted invitation.org.expired
|
17
|
+
invitation.preverify.created invitation.preverify.updated invitation.preverify.invited invitation.preverify.accepted invitation.preverify.expired
|
17
18
|
invitation.referral.created invitation.referral.updated invitation.referral.invited invitation.referral.accepted invitation.referral.expired
|
18
19
|
invitation.request.created invitation.request.updated invitation.request.invited invitation.request.accepted invitation.request.expired
|
19
20
|
membership.created membership.updated membership.deleted
|
20
21
|
org.created org.updated org.closed
|
21
22
|
user.created user.updated user.deleted
|
22
|
-
user.email.verifying user.email.verified
|
23
|
+
user.email.updating user.email.verifying user.email.verified
|
23
24
|
user.login.succeeded user.login.failed user.login.initiated
|
24
25
|
user.password.resetting user.password.updated
|
25
26
|
user.profile.updated
|
@@ -28,10 +29,11 @@ module AuthRocket
|
|
28
29
|
|
29
30
|
def self.email_event_types
|
30
31
|
%w( invitation.org.invited invitation.org.accepted
|
32
|
+
invitation.preverify.invited
|
31
33
|
invitation.referral.invited
|
32
34
|
invitation.request.invited
|
33
35
|
user.created
|
34
|
-
user.email.verifying user.email.verified
|
36
|
+
user.email.updating user.email.verifying user.email.verified
|
35
37
|
user.login.succeeded user.login.failed
|
36
38
|
user.password.resetting user.password.updated
|
37
39
|
user.profile.updated
|
data/lib/authrocket/jwt_key.rb
CHANGED
data/lib/authrocket/realm.rb
CHANGED
@@ -19,6 +19,7 @@ module AuthRocket
|
|
19
19
|
attr :available_locales, :default_locale
|
20
20
|
attr :email_verification, :org_mode, :signup
|
21
21
|
attr :name_field, :org_name_field, :password_field, :username_field
|
22
|
+
attr :allowed_origins, :lr_features
|
22
23
|
attr :branding, :color_1, :logo, :logo_icon, :privacy_policy, :stylesheet, :terms_of_service
|
23
24
|
attr :access_token_minutes, :jwt_algo, :jwt_minutes, :jwt_scopes, :session_minutes
|
24
25
|
attr :jwt_key # readonly
|
data/lib/authrocket/user.rb
CHANGED
@@ -9,8 +9,8 @@ module AuthRocket
|
|
9
9
|
has_many :memberships
|
10
10
|
has_many :sessions
|
11
11
|
|
12
|
-
attr :custom, :email, :email_verification, :first_name, :last_name
|
13
|
-
attr :reference, :state, :username
|
12
|
+
attr :custom, :email, :email_pending, :email_verification, :first_name, :last_name
|
13
|
+
attr :locale, :name, :reference, :state, :username
|
14
14
|
attr :password, :password_confirmation # writeonly
|
15
15
|
attr_datetime :created_at, :last_login_at
|
16
16
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: authrocket
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- AuthRocket Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-11-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -145,7 +145,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
145
145
|
- !ruby/object:Gem::Version
|
146
146
|
version: '0'
|
147
147
|
requirements: []
|
148
|
-
rubygems_version: 3.
|
148
|
+
rubygems_version: 3.4.10
|
149
149
|
signing_key:
|
150
150
|
specification_version: 4
|
151
151
|
summary: AuthRocket client for Ruby
|