{"info":{"_postman_id":"316b387c-d8ea-4a18-be44-95df64761403","name":"Rodauth Routes Documentation","description":"<html><head></head><body><p>This document describes the authentication routes that Rodauth provides along with the possible params for JSON requests.</p>\n<p>Some things to take note of:</p>\n<ul>\n<li><p>The <code>Accept: application/json</code> header is required by default, unless you explicitly disable checking it via <code>json_check_accept? false</code></p>\n</li>\n<li><p>The params depend on the options set in the configuration for each feature. This will be stated in the description of each param.</p>\n</li>\n<li><p>If you're using the <code>jwt</code> feature, you'll have to include the token in the Authentication header of requests that require authentication. The format is \"Bearer #{jwt}\"</p>\n</li>\n<li><p>The <code>login</code> param is <code>email</code> by default if you're using <code>rodauth-rails</code>. For redundancy, it'll be stated in the description of each endpoint that uses the param.</p>\n</li>\n</ul>\n<p>Written by Samuelodan with help from Janko Marohnić</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"26686011","collectionId":"316b387c-d8ea-4a18-be44-95df64761403","publishedId":"2s9YC7SWn9","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2025-08-06T16:46:11.000Z"},"item":[{"name":"create-account","id":"bb1338e0-9ee1-424a-8c29-c60713f4f58f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"login\": \"testuser2@example.com\",\n  \"password\": \"password\",\n  \"password-confirm\": \"password\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/create-account","description":"<p>This is the endpoint for creating a new account. The required params depend on the options set in the configuration for this feature.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Required Params</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>login</code> ( or <code>email</code> with rodauth-rails)</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"optional-params\">Optional Params:</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Optional Params</th>\n<th>Condition</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>login-confirm</code> (or <code>email-confirm</code> with rodauth-rails)</td>\n<td><code>require_login_confirmation?</code></td>\n</tr>\n<tr>\n<td><code>password</code></td>\n<td><code>create_account_set_password?</code></td>\n</tr>\n<tr>\n<td><code>password-confirm</code></td>\n<td><code>create_account_set_password? &amp;&amp; require_password_confirmation?</code></td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["create-account"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[{"id":"bf25d85e-585f-4e7f-a16e-8ce7fb23c000","name":"successfully / 200","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"login\": \"testuser2@example.com\",\n  \"password\": \"password\",\n  \"password-confirm\": \"password\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/create-account"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Authorization","value":"eyJhbGciOiJIUzI1NiJ9.eyJhY2NvdW50X2lkIjoxMiwidW52ZXJpZmllZF9hY2NvdW50IjoxNjk0ODA5OTE5LCJhdXRoZW50aWNhdGVkX2J5IjpbImF1dG9sb2dpbiJdLCJhdXRvbG9naW5fdHlwZSI6ImNyZWF0ZV9hY2NvdW50In0.MzLm6i9_ZYUX8nT2wgvlZ2A3pz9tI9R_qLZlZLOmNMY"},{"key":"Content-Type","value":"application/json"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"ETag","value":"W/\"a6ecafd281d107c80880a5f8ad09f077\""},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"X-Request-Id","value":"547017a5-03dd-4072-81ac-18789d1261aa"},{"key":"X-Runtime","value":"0.434290"},{"key":"Server-Timing","value":"start_processing.action_controller;dur=3.11, sql.active_record;dur=86.78, enqueue.active_job;dur=0.86, process_action.action_controller;dur=393.40"},{"key":"Content-Length","value":"78"}],"cookie":[],"responseTime":null,"body":"{\n \"success\": \"An email has been sent to you with a link to verify your account\"\n}"}],"_postman_id":"bb1338e0-9ee1-424a-8c29-c60713f4f58f"},{"name":"verify-account","id":"d08c652f-0407-4658-9b31-4ea3a777afef","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"key\":\"12_ZHjDhRsul7jsMahi2LWWtCvo5Am85So6lbYe-AKIx_A\"\n}"},"url":"http://127.0.0.1:3000/verify-account","description":"<p>After sign up, the user gets an email with an account verification link that contains a key which will be sent to this endpoint to verify the user.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Required Params</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>key</code></td>\n</tr>\n</tbody>\n</table>\n</div><div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Optional Params</th>\n<th>Condition</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>password</code></td>\n<td><code>verify_account_set_password?</code></td>\n</tr>\n<tr>\n<td><code>password-confirm</code></td>\n<td><code>verify_account_set_password? &amp;&amp; require_password_confirmation?</code></td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["verify-account"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[{"id":"288504f4-e454-4060-86df-f7cfa15ea661","name":"successfully / 200","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"key\":\"12_ZHjDhRsul7jsMahi2LWWtCvo5Am85So6lbYe-AKIx_A\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/verify-account"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Authorization","value":"eyJhbGciOiJIUzI1NiJ9.eyJhY2NvdW50X2lkIjoxMiwiYXV0aGVudGljYXRlZF9ieSI6WyJhdXRvbG9naW4iXSwiYXV0b2xvZ2luX3R5cGUiOiJ2ZXJpZnlfYWNjb3VudCJ9.GvAoDn6bvTxyG0GKppOFvecMVdJxbpZb1YC1KjegbY0"},{"key":"Content-Type","value":"application/json"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"ETag","value":"W/\"3e779fcfb61327a1a994f1b452d3b0a3\""},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"X-Request-Id","value":"bf1e3f0d-bbf3-4b5d-bfc8-c583b6502612"},{"key":"X-Runtime","value":"0.064166"},{"key":"Server-Timing","value":"start_processing.action_controller;dur=0.42, sql.active_record;dur=19.51, process_action.action_controller;dur=39.96"},{"key":"Content-Length","value":"44"}],"cookie":[],"responseTime":null,"body":"{\n \"success\": \"Your account has been verified\"\n}"}],"_postman_id":"d08c652f-0407-4658-9b31-4ea3a777afef"},{"name":"login","id":"3febd9a6-27b9-4526-be19-c228e75d9b6d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"login\": \"testuser2@example.com\",\n  \"password\": \"password\"\n}"},"url":"http://127.0.0.1:3000/login","description":"<p>The account has to be verfied to be successfully logged in, and for this endpoint, the required params also depend on the options set in the configuration for this feature.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Optional Params</th>\n<th>Condition</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>login</code> (or <code>email</code> with rodauth-rails)</td>\n<td><code>unless skip_login_field_on_login?</code></td>\n</tr>\n<tr>\n<td><code>password</code></td>\n<td><code>unless skip_password_field_on_login?</code></td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["login"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[{"id":"caf9710a-036f-4ee9-840f-96974fe54505","name":"successfully / 200","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"login\": \"testuser2@example.com\",\n  \"password\": \"password\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/login"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Authorization","value":"eyJhbGciOiJIUzI1NiJ9.eyJhY2NvdW50X2lkIjoxMiwiYXV0aGVudGljYXRlZF9ieSI6WyJwYXNzd29yZCJdfQ.zZMbyc2L8QPMA_JQFtFeRyIftccYj8kuxwf3wKYnk2Q"},{"key":"Content-Type","value":"application/json"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"ETag","value":"W/\"84e99047b21140845d7a43b2fa3a1c86\""},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"X-Request-Id","value":"79f6105e-5d6a-4355-9555-56f387c81e03"},{"key":"X-Runtime","value":"0.304664"},{"key":"Server-Timing","value":"start_processing.action_controller;dur=0.16, sql.active_record;dur=16.65, process_action.action_controller;dur=286.64"},{"key":"Content-Length","value":"37"}],"cookie":[],"responseTime":null,"body":"{\n \"success\": \"You have been logged in\"\n}"}],"_postman_id":"3febd9a6-27b9-4526-be19-c228e75d9b6d"},{"name":"verify-account-resend","id":"3d82c4bb-05c8-4b1c-a50b-baabd047198f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"login\": \"testuser1@example.com\"\n}"},"url":"http://127.0.0.1:3000/verify-account-resend","description":"<p>If for some reason, the user didn't get the initial verification email, use this endpoint to send them another one. Note that there's a 5-minute delay between resend requests by default. You can change this by passing a new integer value (in seconds) to <code>verify_account_skip_resend_email_within</code> in the auth class config.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Required Params</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>login</code> (or <code>email</code> with rodauth-rails)</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["verify-account-resend"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[{"id":"6611493b-7b3c-48a9-a512-595562ea7368","name":"successfully / 200","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"login\": \"testuser1@example.com\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/verify-account-resend"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Authorization","value":"eyJhbGciOiJIUzI1NiJ9.e30.XLltXnMy6sNI6S5Wm5tjPvfiX-BZtC_xbQH_U0R8MrQ"},{"key":"Content-Type","value":"application/json"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"ETag","value":"W/\"a6ecafd281d107c80880a5f8ad09f077\""},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"X-Request-Id","value":"6ab51781-393b-48f6-89f2-c8feabf26c04"},{"key":"X-Runtime","value":"0.052372"},{"key":"Server-Timing","value":"start_processing.action_controller;dur=0.17, sql.active_record;dur=18.67, enqueue.active_job;dur=1.10, process_action.action_controller;dur=41.20"},{"key":"Content-Length","value":"78"}],"cookie":[],"responseTime":null,"body":"{\n \"success\": \"An email has been sent to you with a link to verify your account\"\n}"}],"_postman_id":"3d82c4bb-05c8-4b1c-a50b-baabd047198f"},{"name":"change-login","id":"53ec85aa-2c9f-4534-9a36-da7b60812403","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer \teyJhbGciOiJIUzI1NiJ9.eyJhY2NvdW50X2lkIjoxMiwiYXV0aGVudGljYXRlZF9ieSI6WyJhdXRvbG9naW4iXSwiYXV0b2xvZ2luX3R5cGUiOiJ2ZXJpZnlfYWNjb3VudCJ9.GvAoDn6bvTxyG0GKppOFvecMVdJxbpZb1YC1KjegbY0"}],"body":{"mode":"raw","raw":"{\n  \"password\": \"password\",\n  \"login\": \"testuser2@example.com\"\n}"},"url":"http://127.0.0.1:3000/change-login","description":"<p>This lets you change the user email address. Depending on the configuration, It could require sending a confirmation mail to the current email address. The <code>login</code> param refers to the new email address (login).</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Required Params</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>login</code> (or <code>email</code> with rodauth-rails)</td>\n</tr>\n</tbody>\n</table>\n</div><div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Optional Params</strong></th>\n<th><strong>Condition</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>login-confirm</code> (or <code>email-confirm</code> with rodauth-rails)</td>\n<td><code>require_login_confirmation?</code></td>\n</tr>\n<tr>\n<td><code>password</code></td>\n<td><code>change_login_requires_password?</code></td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["change-login"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[{"id":"2bfb548c-6158-4a2a-9645-dd93a1ab9822","name":"successfully / 200","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"},{"key":"Authorization","value":"Bearer \teyJhbGciOiJIUzI1NiJ9.eyJhY2NvdW50X2lkIjoxMiwiYXV0aGVudGljYXRlZF9ieSI6WyJhdXRvbG9naW4iXSwiYXV0b2xvZ2luX3R5cGUiOiJ2ZXJpZnlfYWNjb3VudCJ9.GvAoDn6bvTxyG0GKppOFvecMVdJxbpZb1YC1KjegbY0"}],"body":{"mode":"raw","raw":"{\n  \"password\": \"password\",\n  \"login\": \"testuser2@example.com\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/change-login"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Authorization","value":"eyJhbGciOiJIUzI1NiJ9.eyJhY2NvdW50X2lkIjoxMiwiYXV0aGVudGljYXRlZF9ieSI6WyJhdXRvbG9naW4iXSwiYXV0b2xvZ2luX3R5cGUiOiJ2ZXJpZnlfYWNjb3VudCJ9.GvAoDn6bvTxyG0GKppOFvecMVdJxbpZb1YC1KjegbY0"},{"key":"Content-Type","value":"application/json"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"ETag","value":"W/\"b0add0cc7164e1c99fadc186a56edc0f\""},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"X-Request-Id","value":"cfffb3e1-5e65-427d-b87c-18193894ac6f"},{"key":"X-Runtime","value":"0.307788"},{"key":"Server-Timing","value":"start_processing.action_controller;dur=0.95, sql.active_record;dur=12.32, enqueue.active_job;dur=0.45, process_action.action_controller;dur=283.00"},{"key":"Content-Length","value":"83"}],"cookie":[],"responseTime":null,"body":"{\n \"success\": \"An email has been sent to you with a link to verify your login change\"\n}"}],"_postman_id":"53ec85aa-2c9f-4534-9a36-da7b60812403"},{"name":"verify-login-change","id":"283a5cfc-dfdd-455c-a9f1-fe83ff2f60fd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"key\": \"12_FLFWdAfUE56mXje7qx5u8JsderGoqyfDaCtnahheePk\"\n}"},"url":"http://127.0.0.1:3000/verify-login-change","description":"<p>After requesting to change their email (login), the user will receive a confirmation email with a key in the link. This is the where to send the key.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Required Params</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>key</code></td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["verify-login-change"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[{"id":"01fd064f-65ff-4c5f-b1b2-b3e7cc362b80","name":"successfully / 200","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"key\": \"12_FLFWdAfUE56mXje7qx5u8JsderGoqyfDaCtnahheePk\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/verify-login-change"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Authorization","value":"eyJhbGciOiJIUzI1NiJ9.e30.XLltXnMy6sNI6S5Wm5tjPvfiX-BZtC_xbQH_U0R8MrQ"},{"key":"Content-Type","value":"application/json"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"ETag","value":"W/\"e18bc521880599402ebcb81691783dc2\""},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"X-Request-Id","value":"ab7b986f-146d-46b8-bc86-40047f250049"},{"key":"X-Runtime","value":"0.054096"},{"key":"Server-Timing","value":"start_processing.action_controller;dur=0.58, sql.active_record;dur=11.47, process_action.action_controller;dur=36.36"},{"key":"Content-Length","value":"49"}],"cookie":[],"responseTime":null,"body":"{\n \"success\": \"Your login change has been verified\"\n}"}],"_postman_id":"283a5cfc-dfdd-455c-a9f1-fe83ff2f60fd"},{"name":"change-password","id":"2bc9029c-0e75-4d18-8e86-30937e60801f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiJ9.eyJhY2NvdW50X2lkIjoxMiwiYXV0aGVudGljYXRlZF9ieSI6WyJhdXRvbG9naW4iXSwiYXV0b2xvZ2luX3R5cGUiOiJ2ZXJpZnlfYWNjb3VudCJ9.GvAoDn6bvTxyG0GKppOFvecMVdJxbpZb1YC1KjegbY0"}],"body":{"mode":"raw","raw":"{\n  \"password\": \"password\",\n  \"new-password\": \"passwordnew\",\n  \"password-confirm\": \"passwordnew\"\n}"},"url":"http://127.0.0.1:3000/change-password","description":"<p>This is how you change users' passwords, and the <code>password</code> param represents current password.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Required Params</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>new-password</code></td>\n</tr>\n</tbody>\n</table>\n</div><div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Optional Params</strong></th>\n<th><strong>Condition</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>password</code></td>\n<td><code>change_password_requires_password?</code></td>\n</tr>\n<tr>\n<td><code>password-confirm</code></td>\n<td><code>require_password_confirmation?</code></td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["change-password"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[{"id":"a1c13535-b8bc-48af-98bc-5b635f5f361d","name":"successfully / 200","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"},{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiJ9.eyJhY2NvdW50X2lkIjoxMiwiYXV0aGVudGljYXRlZF9ieSI6WyJhdXRvbG9naW4iXSwiYXV0b2xvZ2luX3R5cGUiOiJ2ZXJpZnlfYWNjb3VudCJ9.GvAoDn6bvTxyG0GKppOFvecMVdJxbpZb1YC1KjegbY0"}],"body":{"mode":"raw","raw":"{\n  \"password\": \"password\",\n  \"new-password\": \"passwordnew\",\n  \"password-confirm\": \"passwordnew\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/change-password"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Authorization","value":"eyJhbGciOiJIUzI1NiJ9.eyJhY2NvdW50X2lkIjoxMiwiYXV0aGVudGljYXRlZF9ieSI6WyJhdXRvbG9naW4iXSwiYXV0b2xvZ2luX3R5cGUiOiJ2ZXJpZnlfYWNjb3VudCJ9.GvAoDn6bvTxyG0GKppOFvecMVdJxbpZb1YC1KjegbY0"},{"key":"Content-Type","value":"application/json"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"ETag","value":"W/\"fd5bc95ef14a77973e8431d8d80b7e81\""},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"X-Request-Id","value":"6ea0eb4b-5cbc-4074-b490-3252fc148cb1"},{"key":"X-Runtime","value":"0.966917"},{"key":"Server-Timing","value":"start_processing.action_controller;dur=1.75, sql.active_record;dur=73.88, enqueue.active_job;dur=1.47, process_action.action_controller;dur=891.21"},{"key":"Content-Length","value":"44"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": \"Your password has been changed\"\n}"},{"id":"6e562315-b62d-417e-8e87-98bfe962a1b1","name":"incorrect password","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"},{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiJ9.eyJhY2NvdW50X2lkIjoxMiwiYXV0aGVudGljYXRlZF9ieSI6WyJhdXRvbG9naW4iXSwiYXV0b2xvZ2luX3R5cGUiOiJ2ZXJpZnlfYWNjb3VudCJ9.GvAoDn6bvTxyG0GKppOFvecMVdJxbpZb1YC1KjegbY0"}],"body":{"mode":"raw","raw":"{\n  \"password\": \"incorrectpassword\",\n  \"new-password\": \"passwordnew\",\n  \"password-confirm\": \"passwordnew\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/change-password"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Authorization","value":"eyJhbGciOiJIUzI1NiJ9.eyJhY2NvdW50X2lkIjoxMiwiYXV0aGVudGljYXRlZF9ieSI6WyJhdXRvbG9naW4iXSwiYXV0b2xvZ2luX3R5cGUiOiJ2ZXJpZnlfYWNjb3VudCJ9.GvAoDn6bvTxyG0GKppOFvecMVdJxbpZb1YC1KjegbY0"},{"key":"Content-Type","value":"application/json"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Cache-Control","value":"no-cache"},{"key":"X-Request-Id","value":"ac2c00c0-afb3-4604-9a7d-f81ea5e70a41"},{"key":"X-Runtime","value":"0.339255"},{"key":"Server-Timing","value":"start_processing.action_controller;dur=0.43, sql.active_record;dur=17.02, process_action.action_controller;dur=302.83"},{"key":"Content-Length","value":"99"}],"cookie":[],"responseTime":null,"body":"{\n    \"field-error\": [\n        \"password\",\n        \"invalid password\"\n    ],\n    \"error\": \"There was an error changing your password\"\n}"}],"_postman_id":"2bc9029c-0e75-4d18-8e86-30937e60801f"},{"name":"reset-password-request","id":"74d7ad0d-39f4-4752-b9f6-9d1022b81579","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiJ9.eyJhY2NvdW50X2lkIjoxMiwiYXV0aGVudGljYXRlZF9ieSI6WyJhdXRvbG9naW4iXSwiYXV0b2xvZ2luX3R5cGUiOiJ2ZXJpZnlfYWNjb3VudCJ9.GvAoDn6bvTxyG0GKppOFvecMVdJxbpZb1YC1KjegbY0"}],"body":{"mode":"raw","raw":"{\n  \"login\": \"testuser2@example.com\"\n}"},"url":"http://127.0.0.1:3000/reset-password-request","description":"<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Required Params</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>login</code> (or <code>email</code> with rodauth-rails)</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["reset-password-request"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[{"id":"7d4b8095-859e-41a9-a1d9-9693b525f144","name":"successfully / 200","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"},{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiJ9.eyJhY2NvdW50X2lkIjoxMiwiYXV0aGVudGljYXRlZF9ieSI6WyJhdXRvbG9naW4iXSwiYXV0b2xvZ2luX3R5cGUiOiJ2ZXJpZnlfYWNjb3VudCJ9.GvAoDn6bvTxyG0GKppOFvecMVdJxbpZb1YC1KjegbY0"}],"body":{"mode":"raw","raw":"{\n  \"login\": \"testuser2@example.com\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/reset-password-request"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Authorization","value":"eyJhbGciOiJIUzI1NiJ9.eyJhY2NvdW50X2lkIjoxMiwiYXV0aGVudGljYXRlZF9ieSI6WyJhdXRvbG9naW4iXSwiYXV0b2xvZ2luX3R5cGUiOiJ2ZXJpZnlfYWNjb3VudCJ9.GvAoDn6bvTxyG0GKppOFvecMVdJxbpZb1YC1KjegbY0"},{"key":"Content-Type","value":"application/json"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"ETag","value":"W/\"53f620ed0736b471ae766e5b275b6a48\""},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"X-Request-Id","value":"e4550cb7-c97e-48d4-801e-ba50c9c977f7"},{"key":"X-Runtime","value":"0.079746"},{"key":"Server-Timing","value":"start_processing.action_controller;dur=0.31, sql.active_record;dur=46.04, enqueue.active_job;dur=2.44, process_action.action_controller;dur=64.57"},{"key":"Content-Length","value":"94"}],"cookie":[],"responseTime":null,"body":"{\n \"success\": \"An email has been sent to you with a link to reset the password for your account\"\n}"}],"_postman_id":"74d7ad0d-39f4-4752-b9f6-9d1022b81579"},{"name":"reset-password","id":"fb9fd975-fae1-4cb0-8451-e0ae0fc114b7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"key\": \"12_QMgg7l5aSTU1di4T2UVu_NMtn3Td_-U1sQzp4uZ96iM\",\n  \"password\": \"password\",\n  \"password-confirm\": \"password\"\n}"},"url":"http://127.0.0.1:3000/reset-password","description":"<p>The reset password form should submit to this endpoint with the key from the email link.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Required Params</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>key</code></td>\n</tr>\n<tr>\n<td><code>password</code></td>\n</tr>\n</tbody>\n</table>\n</div><div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Optional Params</strong></th>\n<th><strong>Condition</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>password-confirm</code></td>\n<td><code>require_password_confirmation?</code></td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["reset-password"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[{"id":"c5a16273-2b74-4028-bdab-e83b281ba7dc","name":"successfully / 200","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"key\": \"12_QMgg7l5aSTU1di4T2UVu_NMtn3Td_-U1sQzp4uZ96iM\",\n  \"password\": \"password\",\n  \"password-confirm\": \"password\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/reset-password"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Authorization","value":"eyJhbGciOiJIUzI1NiJ9.e30.XLltXnMy6sNI6S5Wm5tjPvfiX-BZtC_xbQH_U0R8MrQ"},{"key":"Content-Type","value":"application/json"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"ETag","value":"W/\"c6e5fa066541f7706a52c531e85c7218\""},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"X-Request-Id","value":"f4441ba9-3f6e-46f1-9f13-65a31337f99d"},{"key":"X-Runtime","value":"0.542773"},{"key":"Server-Timing","value":"start_processing.action_controller;dur=0.28, sql.active_record;dur=22.50, process_action.action_controller;dur=530.23"},{"key":"Content-Length","value":"42"}],"cookie":[],"responseTime":null,"body":"{\n \"success\": \"Your password has been reset\"\n}"}],"_postman_id":"fb9fd975-fae1-4cb0-8451-e0ae0fc114b7"},{"name":"logout","id":"1b51c2ea-777e-4b91-9c6e-5436144a21d4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"url":"http://127.0.0.1:3000/logout","description":"<p>By itself, this endpoint clears out the session. But for API apps, you'll want to enable the <code>:active_sessions</code> feature as it provides a strategy to revoke JWT on logout.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Optional Params</strong></th>\n<th><strong>Condition</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>global_logout</code> (pass it any value)</td>\n<td><code>features.include?(:active_sessions)</code></td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["logout"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[{"id":"f19bc5e3-dfa1-4217-9b98-84649b62ad89","name":"successfully / 200","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"url":"http://127.0.0.1:3000/logout"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Authorization","value":"eyJhbGciOiJIUzI1NiJ9.e30.XLltXnMy6sNI6S5Wm5tjPvfiX-BZtC_xbQH_U0R8MrQ"},{"key":"Content-Type","value":"application/json"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"ETag","value":"W/\"f4a892bd26eef24dfd344a061588ebb3\""},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"X-Request-Id","value":"c9e7bf95-0ac3-4929-a9b1-3eb9d9b43c5f"},{"key":"X-Runtime","value":"0.042769"},{"key":"Server-Timing","value":"start_processing.action_controller;dur=0.17, sql.active_record;dur=7.66, process_action.action_controller;dur=22.69"},{"key":"Content-Length","value":"38"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": \"You have been logged out\"\n}"}],"_postman_id":"1b51c2ea-777e-4b91-9c6e-5436144a21d4"},{"name":"close-account","id":"01a72f35-b451-4868-b8bd-96d91fe0da06","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiJ9.eyJhY2NvdW50X2lkIjozLCJhdXRoZW50aWNhdGVkX2J5IjpbInBhc3N3b3JkIl19.Rnm9uaBSgvhZzulKii0iepwvdHyexQIPSPTsTnIXqwk"}],"body":{"mode":"raw","raw":"{\n  \"password\": \"password\"\n}"},"url":"http://127.0.0.1:3000/close-account","description":"<p>This lets users close their accounts.</p>\n<p>Note that there's currently no endpoint for reopening a closed account.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Optional Params</strong></th>\n<th><strong>Condition</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>password</code></td>\n<td><code>close_account_requires_password?</code></td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["close-account"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[{"id":"41b96fe0-23ec-4db1-b969-400761cb72d5","name":"successfully / 200","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"},{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiJ9.eyJhY2NvdW50X2lkIjozLCJhdXRoZW50aWNhdGVkX2J5IjpbInBhc3N3b3JkIl19.Rnm9uaBSgvhZzulKii0iepwvdHyexQIPSPTsTnIXqwk"}],"body":{"mode":"raw","raw":"{\n  \"password\": \"password\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/close-account"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Authorization","value":"eyJhbGciOiJIUzI1NiJ9.e30.XLltXnMy6sNI6S5Wm5tjPvfiX-BZtC_xbQH_U0R8MrQ"},{"key":"Content-Type","value":"application/json"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"ETag","value":"W/\"339221a1642f0e9504bc067e02ad166e\""},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"X-Request-Id","value":"9948e4bf-744f-4111-8417-0b96da288e1b"},{"key":"X-Runtime","value":"0.398724"},{"key":"Server-Timing","value":"start_processing.action_controller;dur=1.29, sql.active_record;dur=65.24, process_action.action_controller;dur=384.68"},{"key":"Content-Length","value":"42"}],"cookie":[],"responseTime":null,"body":"{\n \"success\": \"Your account has been closed\"\n}"}],"_postman_id":"01a72f35-b451-4868-b8bd-96d91fe0da06"}],"variable":[{"key":"baseURL1","value":"http://127.0.0.1:3000","type":"any"}]}