atproto_auth 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +17 -2
- data/CHANGELOG.md +23 -2
- data/PROJECT_STRUCTURE.txt +10129 -0
- data/README.md +88 -2
- data/examples/confidential_client/.gitignore +2 -0
- data/examples/confidential_client/Gemfile.lock +6 -0
- data/examples/confidential_client/README.md +86 -9
- data/examples/confidential_client/app.rb +83 -12
- data/examples/confidential_client/{public/client-metadata.json → config/client-metadata.example.json} +5 -4
- data/examples/confidential_client/screenshots/screenshot-1-sign-in.png +0 -0
- data/examples/confidential_client/screenshots/screenshot-2-success.png +0 -0
- data/examples/confidential_client/scripts/generate_keys.rb +0 -0
- data/examples/confidential_client/views/authorized.erb +1 -1
- data/lib/atproto_auth/client.rb +98 -38
- data/lib/atproto_auth/client_metadata.rb +2 -2
- data/lib/atproto_auth/configuration.rb +35 -1
- data/lib/atproto_auth/dpop/key_manager.rb +1 -1
- data/lib/atproto_auth/dpop/nonce_manager.rb +30 -47
- data/lib/atproto_auth/encryption.rb +156 -0
- data/lib/atproto_auth/http_client.rb +2 -2
- data/lib/atproto_auth/identity/document.rb +1 -1
- data/lib/atproto_auth/identity/resolver.rb +1 -1
- data/lib/atproto_auth/serialization/base.rb +189 -0
- data/lib/atproto_auth/serialization/dpop_key.rb +29 -0
- data/lib/atproto_auth/serialization/session.rb +77 -0
- data/lib/atproto_auth/serialization/stored_nonce.rb +37 -0
- data/lib/atproto_auth/serialization/token_set.rb +43 -0
- data/lib/atproto_auth/server_metadata/authorization_server.rb +20 -1
- data/lib/atproto_auth/state/session_manager.rb +67 -20
- data/lib/atproto_auth/storage/interface.rb +112 -0
- data/lib/atproto_auth/storage/key_builder.rb +39 -0
- data/lib/atproto_auth/storage/memory.rb +191 -0
- data/lib/atproto_auth/storage/redis.rb +119 -0
- data/lib/atproto_auth/token/refresh.rb +249 -0
- data/lib/atproto_auth/version.rb +1 -1
- data/lib/atproto_auth.rb +29 -1
- metadata +32 -4
- data/examples/confidential_client/config/client-metadata.json +0 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 33b01bf6cb6fe8a7c1fcc3b48fad2be7d0b8e5f9f1e63d7107cfa77806859417
|
4
|
+
data.tar.gz: 15619a2a5ae61f36b9697dbf338df36e384c1c47caebf6c6a3e928fcd8fcd1a4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 36067fee1cfcf45391d68d57f66fd4424c9b0a44963280bc155a4e5c5ce5f66ecbb88a4794f20cb3982799211685cd2278cb1c8170d1bfbecb541fc4a0a91627
|
7
|
+
data.tar.gz: 299121d8d81833fc543e8c633f767ecc3490745207dc73fa870c8c0e55797e53d20234d6f376c6e6eb13e00155584c61004f63ebc132f8f8a3db9041b633b4ef
|
data/.rubocop.yml
CHANGED
@@ -3,11 +3,26 @@ AllCops:
|
|
3
3
|
SuggestExtensions: false
|
4
4
|
TargetRubyVersion: 3.0
|
5
5
|
|
6
|
+
Metrics/BlockLength:
|
7
|
+
Enabled: false
|
8
|
+
|
6
9
|
Metrics/ClassLength:
|
7
|
-
|
10
|
+
Enabled: false
|
11
|
+
|
12
|
+
Metrics/ModuleLength:
|
13
|
+
Enabled: false
|
8
14
|
|
9
15
|
Metrics/MethodLength:
|
10
|
-
|
16
|
+
Enabled: false
|
17
|
+
|
18
|
+
Metrics/AbcSize:
|
19
|
+
Enabled: false
|
20
|
+
|
21
|
+
Metrics/PerceivedComplexity:
|
22
|
+
Enabled: false
|
23
|
+
|
24
|
+
Metrics/CyclomaticComplexity:
|
25
|
+
Enabled: false
|
11
26
|
|
12
27
|
Style/StringLiterals:
|
13
28
|
EnforcedStyle: double_quotes
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,26 @@
|
|
1
|
-
|
1
|
+
# Changelog
|
2
|
+
All notable changes to this project will be documented in this file.
|
2
3
|
|
3
|
-
|
4
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
5
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
6
|
+
|
7
|
+
## [0.1.0] - 2024-12-07
|
8
|
+
|
9
|
+
### Added
|
10
|
+
- Configurable storage backend system for managing OAuth state
|
11
|
+
- In-memory storage implementation included by default
|
12
|
+
- Redis storage implementation for production environments
|
13
|
+
- Thread-safe storage operations with atomic locks
|
14
|
+
- Storage encryption for sensitive data
|
15
|
+
- Automatic cleanup of expired tokens and session data
|
16
|
+
- Storage interface for custom backend implementations
|
17
|
+
|
18
|
+
### Changed
|
19
|
+
- Storage configuration is now required in AtprotoAuth.configure
|
20
|
+
- Default configuration uses thread-safe in-memory storage
|
21
|
+
- Session and token management now use configured storage backend
|
22
|
+
- Improved thread safety for all storage operations
|
23
|
+
|
24
|
+
## [0.0.1] - 2024-12-05
|
4
25
|
|
5
26
|
- Initial release
|