> For the complete documentation index, see [llms.txt](https://docs.notionapps.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.notionapps.com/integrations/email-and-password.md).

# Email & password

Email & password is hosted authentication for private NotionApps apps. NotionApps manages app-specific credentials; makers do not create a Firebase project, paste service-account keys, choose user passwords, or store passwords in Notion.

### Availability

The method is plan/entitlement gated. When available, Email & password can be selected under Users. If it is missing or marked unavailable, review the plan or contact support.

### Configure an invitation-only password app

1. Open Users and link the Users database.
2. Make the app Private.
3. Set Login Method to Email & password.
4. Map writable Name and Email properties.
5. Configure Role and Active fields when used.
6. Leave Allow users to sign up off.
7. Publish the app configuration.
8. Open Users → Add User.
9. Enter name, email, and optional role.
10. Select Add user and send invitation.
11. Monitor Access until Active.
12. Test sign-in at the published URL.

This authorizes only the named email. Other visitors cannot create accounts while signup is off.

### Configure public signup

1. Follow the base configuration above.
2. Turn Allow users to sign up on.
3. Set allowed domains if registration should be restricted.
4. Add Terms and Privacy URLs.
5. Set safe default Role and Active values.
6. Publish and test with a non-maker address.

A new password signup verifies the email before the first login completes. User-limit checks occur before the signup row is written.

### Invitation flow

1. Maker adds the user.
2. NotionApps creates or confirms the app-specific identity.
3. NotionApps sends an expiring setup link.
4. User opens the branded page, enters a password, confirms it, and submits.
5. User returns to the app and signs in.

If the invitation expires, fails, or was already used, resend it from the user’s Access panel. Do not add the same email again.

### Password reset

* End user: select Forgot password on the published login.
* Maker: select an Active user and choose Send password reset.
* Both paths send an expiring, single-use link. The maker never receives the password.

### Disable and re-enable

Disable blocks the user and invalidates existing sessions. Re-enable restores access eligibility. A synced Active or credential change also reconciles access and invalidates stale sessions.

### App isolation

The same email in two separate apps represents two isolated app identities. Changing App A’s password does not change App B’s password.

### What users see

| Situation       | User experience                                        |
| --------------- | ------------------------------------------------------ |
| Invited user    | Setup email → branded Set password page → app sign-in  |
| Public signup   | Create account → verification email → verify → sign in |
| Forgot password | Reset email → branded Reset password page → sign in    |
| Disabled access | Login denied even if the old password is correct       |

### Verification checklist

* Signup off: an uninvited address cannot register.
* Invited user: setup link works once and Access becomes Active.
* Resent invitation: older setup path is no longer relied on.
* Reset: new password works and expired/used link does not.
* Disable: existing session stops being valid.
* Re-enable: supported login works again.
* Role/defaults: user sees the intended screens and data.

### Troubleshooting

| Symptom                           | Action                                                 |
| --------------------------------- | ------------------------------------------------------ |
| Email never arrives               | Confirm address and spam folder, then resend.          |
| Link is invalid or expired        | Generate a new invitation/reset.                       |
| User row exists but login fails   | Check Access, Active, email mapping, and login method. |
| Duplicate email error             | Use the existing user; remove duplicate rows.          |
| User signs in but app looks empty | Check Role, screen visibility, and Data Restriction.   |

### Related

* [Private apps](https://docs.notionapps.com/users/private-apps)
* [Sign up](https://docs.notionapps.com/users/sign-up)
* [Identity admin](https://docs.notionapps.com/users/identity-admin)
