Module: BetterAuth::Passkey::Routes
- Defined in:
- lib/better_auth/passkey/routes.rb,
lib/better_auth/passkey/routes/management.rb,
lib/better_auth/passkey/routes/registration.rb,
lib/better_auth/passkey/routes/authentication.rb
Defined Under Namespace
Modules: Authentication, Management, Registration
Class Method Summary collapse
- .delete_passkey_openapi ⇒ Object
- .generate_authentication_options_openapi ⇒ Object
- .generate_registration_options_openapi ⇒ Object
- .list_passkeys_openapi ⇒ Object
- .openapi_for(route) ⇒ Object
- .passkey_id_body_schema ⇒ Object
- .passkey_options_schema ⇒ Object
- .update_passkey_openapi ⇒ Object
- .verify_authentication_openapi ⇒ Object
- .verify_registration_openapi ⇒ Object
Class Method Details
.delete_passkey_openapi ⇒ Object
105 106 107 108 109 110 111 112 113 114 115 |
# File 'lib/better_auth/passkey/routes.rb', line 105 def delete_passkey_openapi { openapi: { description: "Delete a specific passkey", requestBody: BetterAuth::OpenAPI.json_request_body(passkey_id_body_schema), responses: { "200" => BetterAuth::OpenAPI.json_response("Passkey deleted successfully", BetterAuth::OpenAPI.status_response_schema) } } } end |
.generate_authentication_options_openapi ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/better_auth/passkey/routes.rb', line 59 def { openapi: { operationId: "passkeyGenerateAuthenticateOptions", description: "Generate authentication options for a passkey", responses: { "200" => BetterAuth::OpenAPI.json_response("Success", ) } } } end |
.generate_registration_options_openapi ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/better_auth/passkey/routes.rb', line 20 def { openapi: { operationId: "generatePasskeyRegistrationOptions", description: "Generate registration options for a new passkey", parameters: [ BetterAuth::OpenAPI.query_parameter("authenticatorAttachment", schema: {type: "string", enum: ["platform", "cross-platform"]}, description: "Type of authenticator to use for registration"), BetterAuth::OpenAPI.query_parameter("name", description: "Optional custom name for the passkey"), BetterAuth::OpenAPI.query_parameter("context", description: "Optional context for passkey-first registration flows") ], responses: { "200" => BetterAuth::OpenAPI.json_response("Success", ) } } } end |
.list_passkeys_openapi ⇒ Object
91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/better_auth/passkey/routes.rb', line 91 def list_passkeys_openapi { openapi: { description: "List all passkeys for the authenticated user", responses: { "200" => BetterAuth::OpenAPI.json_response( "Passkeys retrieved successfully", BetterAuth::OpenAPI.array_schema(BetterAuth::OpenAPI.ref_schema("Passkey")) ) } } } end |
.openapi_for(route) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/better_auth/passkey/routes.rb', line 8 def openapi_for(route) { generate_registration_options: , verify_registration: verify_registration_openapi, generate_authentication_options: , verify_authentication: verify_authentication_openapi, list_passkeys: list_passkeys_openapi, delete_passkey: delete_passkey_openapi, update_passkey: update_passkey_openapi }.fetch(route) end |
.passkey_id_body_schema ⇒ Object
145 146 147 148 149 150 151 152 |
# File 'lib/better_auth/passkey/routes.rb', line 145 def passkey_id_body_schema BetterAuth::OpenAPI.object_schema( { id: {type: "string", description: "The ID of the passkey"} }, required: ["id"] ) end |
.passkey_options_schema ⇒ Object
154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 |
# File 'lib/better_auth/passkey/routes.rb', line 154 def BetterAuth::OpenAPI.object_schema( { challenge: {type: "string"}, rp: { type: "object", properties: { name: {type: "string"}, id: {type: "string"} } }, user: {type: "object", additionalProperties: true}, timeout: {type: "number"}, attestation: {type: "string"}, excludeCredentials: {type: "array", items: {type: "object", additionalProperties: true}}, allowCredentials: {type: "array", items: {type: "object", additionalProperties: true}}, userVerification: {type: "string"}, extensions: {type: "object", additionalProperties: true} } ) end |
.update_passkey_openapi ⇒ Object
117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
# File 'lib/better_auth/passkey/routes.rb', line 117 def update_passkey_openapi { openapi: { description: "Update a specific passkey's name", requestBody: BetterAuth::OpenAPI.json_request_body( BetterAuth::OpenAPI.object_schema( { id: {type: "string", description: "The ID of the passkey which will be updated"}, name: {type: "string", description: "The new passkey name"} }, required: ["id", "name"] ) ), responses: { "200" => BetterAuth::OpenAPI.json_response( "Passkey updated successfully", BetterAuth::OpenAPI.object_schema( { passkey: BetterAuth::OpenAPI.ref_schema("Passkey") }, required: ["passkey"] ) ) } } } end |
.verify_authentication_openapi ⇒ Object
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/better_auth/passkey/routes.rb', line 71 def verify_authentication_openapi { openapi: { operationId: "passkeyVerifyAuthentication", description: "Verify authentication of a passkey", requestBody: BetterAuth::OpenAPI.json_request_body( BetterAuth::OpenAPI.object_schema( { response: {type: "object", additionalProperties: true, description: "WebAuthn authentication response"} }, required: ["response"] ) ), responses: { "200" => BetterAuth::OpenAPI.json_response("Success", BetterAuth::OpenAPI.session_response_schema_pair) } } } end |
.verify_registration_openapi ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/better_auth/passkey/routes.rb', line 37 def verify_registration_openapi { openapi: { operationId: "passkeyVerifyRegistration", description: "Verify registration of a new passkey", requestBody: BetterAuth::OpenAPI.json_request_body( BetterAuth::OpenAPI.object_schema( { response: {type: "object", additionalProperties: true, description: "WebAuthn registration response"}, name: {type: "string", description: "Name of the passkey"} }, required: ["response"] ) ), responses: { "200" => BetterAuth::OpenAPI.json_response("Success", BetterAuth::OpenAPI.ref_schema("Passkey")), "400" => {description: "Bad request"} } } } end |