passkey_auth 0.1.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.
Files changed (39) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +30 -0
  3. data/CODE_OF_CONDUCT.md +132 -0
  4. data/LICENSE.txt +21 -0
  5. data/README.md +334 -0
  6. data/Rakefile +12 -0
  7. data/app/controllers/passkey_auth/application_controller.rb +13 -0
  8. data/app/controllers/passkey_auth/magic_links_controller.rb +120 -0
  9. data/app/controllers/passkey_auth/webauthn/authentications/challenges_controller.rb +40 -0
  10. data/app/controllers/passkey_auth/webauthn/authentications_controller.rb +62 -0
  11. data/app/controllers/passkey_auth/webauthn/credentials/challenges_controller.rb +53 -0
  12. data/app/controllers/passkey_auth/webauthn/credentials_controller.rb +58 -0
  13. data/app/javascript/passkey_auth/controllers/index.js +4 -0
  14. data/app/javascript/passkey_auth/controllers/passkey_authentication_controller.js +156 -0
  15. data/app/javascript/passkey_auth/controllers/webauthn_auth_controller.js +40 -0
  16. data/app/javascript/passkey_auth/controllers/webauthn_register_controller.js +70 -0
  17. data/app/javascript/passkey_auth/index.js +3 -0
  18. data/app/javascript/passkey_auth/lib/passkey.js +103 -0
  19. data/app/mailers/passkey_auth/application_mailer.rb +8 -0
  20. data/app/mailers/passkey_auth/magic_link_mailer.rb +17 -0
  21. data/app/models/passkey_auth/magic_link/short_code.rb +29 -0
  22. data/app/models/passkey_auth/magic_link.rb +92 -0
  23. data/app/models/passkey_auth/webauthn_credential.rb +14 -0
  24. data/app/views/passkey_auth/magic_link_mailer/login_link.html.erb +45 -0
  25. data/app/views/passkey_auth/magic_links/new.html.erb +19 -0
  26. data/app/views/passkey_auth/magic_links/verify_code.html.erb +21 -0
  27. data/config/locales/en.yml +53 -0
  28. data/config/routes.rb +28 -0
  29. data/lib/generators/passkey_auth/install/install_generator.rb +98 -0
  30. data/lib/generators/passkey_auth/install/templates/add_passwordless_to_users.rb.erb +8 -0
  31. data/lib/generators/passkey_auth/install/templates/create_passkey_auth_magic_links.rb.erb +21 -0
  32. data/lib/generators/passkey_auth/install/templates/create_passkey_auth_webauthn_credentials.rb.erb +16 -0
  33. data/lib/generators/passkey_auth/install/templates/initializer.rb +26 -0
  34. data/lib/passkey_auth/concerns/passwordless.rb +102 -0
  35. data/lib/passkey_auth/engine.rb +32 -0
  36. data/lib/passkey_auth/version.rb +5 -0
  37. data/lib/passkey_auth.rb +34 -0
  38. data/sig/passkey_auth.rbs +4 -0
  39. metadata +127 -0
metadata ADDED
@@ -0,0 +1,127 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: passkey_auth
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Jeremy Baker
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2025-12-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '7.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '7.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: webauthn
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: sqlite3
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: A Rails engine that provides passwordless authentication using WebAuthn
56
+ passkeys and magic links with email codes. Includes session management, rate limiting,
57
+ and customizable hooks.
58
+ email:
59
+ - jhubert@gmail.com
60
+ executables: []
61
+ extensions: []
62
+ extra_rdoc_files: []
63
+ files:
64
+ - CHANGELOG.md
65
+ - CODE_OF_CONDUCT.md
66
+ - LICENSE.txt
67
+ - README.md
68
+ - Rakefile
69
+ - app/controllers/passkey_auth/application_controller.rb
70
+ - app/controllers/passkey_auth/magic_links_controller.rb
71
+ - app/controllers/passkey_auth/webauthn/authentications/challenges_controller.rb
72
+ - app/controllers/passkey_auth/webauthn/authentications_controller.rb
73
+ - app/controllers/passkey_auth/webauthn/credentials/challenges_controller.rb
74
+ - app/controllers/passkey_auth/webauthn/credentials_controller.rb
75
+ - app/javascript/passkey_auth/controllers/index.js
76
+ - app/javascript/passkey_auth/controllers/passkey_authentication_controller.js
77
+ - app/javascript/passkey_auth/controllers/webauthn_auth_controller.js
78
+ - app/javascript/passkey_auth/controllers/webauthn_register_controller.js
79
+ - app/javascript/passkey_auth/index.js
80
+ - app/javascript/passkey_auth/lib/passkey.js
81
+ - app/mailers/passkey_auth/application_mailer.rb
82
+ - app/mailers/passkey_auth/magic_link_mailer.rb
83
+ - app/models/passkey_auth/magic_link.rb
84
+ - app/models/passkey_auth/magic_link/short_code.rb
85
+ - app/models/passkey_auth/webauthn_credential.rb
86
+ - app/views/passkey_auth/magic_link_mailer/login_link.html.erb
87
+ - app/views/passkey_auth/magic_links/new.html.erb
88
+ - app/views/passkey_auth/magic_links/verify_code.html.erb
89
+ - config/locales/en.yml
90
+ - config/routes.rb
91
+ - lib/generators/passkey_auth/install/install_generator.rb
92
+ - lib/generators/passkey_auth/install/templates/add_passwordless_to_users.rb.erb
93
+ - lib/generators/passkey_auth/install/templates/create_passkey_auth_magic_links.rb.erb
94
+ - lib/generators/passkey_auth/install/templates/create_passkey_auth_webauthn_credentials.rb.erb
95
+ - lib/generators/passkey_auth/install/templates/initializer.rb
96
+ - lib/passkey_auth.rb
97
+ - lib/passkey_auth/concerns/passwordless.rb
98
+ - lib/passkey_auth/engine.rb
99
+ - lib/passkey_auth/version.rb
100
+ - sig/passkey_auth.rbs
101
+ homepage: https://github.com/jhubert/passkey_auth
102
+ licenses:
103
+ - MIT
104
+ metadata:
105
+ homepage_uri: https://github.com/jhubert/passkey_auth
106
+ source_code_uri: https://github.com/jhubert/passkey_auth
107
+ changelog_uri: https://github.com/jhubert/passkey_auth/blob/main/CHANGELOG.md
108
+ post_install_message:
109
+ rdoc_options: []
110
+ require_paths:
111
+ - lib
112
+ required_ruby_version: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: 3.2.0
117
+ required_rubygems_version: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - ">="
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
122
+ requirements: []
123
+ rubygems_version: 3.5.23
124
+ signing_key:
125
+ specification_version: 4
126
+ summary: Passwordless authentication for Rails using passkeys and magic links
127
+ test_files: []