|
| 1 | +--- |
| 2 | +title: Yuvomi |
| 3 | +description: Configure Yuvomi with Pocket ID authentication |
| 4 | +--- |
| 5 | + |
| 6 | +The following variables are used in this example. Replace them with your actual URLs: |
| 7 | + |
| 8 | +- `YUVOMI_URL` (The URL of your Yuvomi instance.) |
| 9 | +- `POCKET_ID_URL` (The URL of your Pocket ID instance.) |
| 10 | + |
| 11 | +## Create OIDC Client in Pocket ID |
| 12 | + |
| 13 | +1. Create a new OIDC Client in Pocket ID (e.g., `Yuvomi`). |
| 14 | +2. Set the **Callback URL** to `${YUVOMI_URL}/api/v1/auth/oidc/callback`. |
| 15 | +3. Enable **PKCE** for the OIDC Client. Yuvomi uses the Authorization Code flow with PKCE (S256) and a nonce. |
| 16 | +4. Copy the **Client ID** and **Client Secret** for the next steps. |
| 17 | + |
| 18 | +## Configure email verification in Pocket ID |
| 19 | + |
| 20 | +1. Open **Administration → Application Configuration** in Pocket ID. |
| 21 | +2. Enable **Emails Verified**. |
| 22 | +3. Open each user's account under **Users** and verify their email address. Pocket ID then sends `email_verified: true` for that user. |
| 23 | + |
| 24 | +## Configure Yuvomi |
| 25 | + |
| 26 | +Set the following environment variables in Yuvomi: |
| 27 | + |
| 28 | +```env |
| 29 | +OIDC_ISSUER=${POCKET_ID_URL} |
| 30 | +OIDC_CLIENT_ID=$clientid |
| 31 | +OIDC_CLIENT_SECRET=$clientsecret |
| 32 | +OIDC_REDIRECT_URI=${YUVOMI_URL}/api/v1/auth/oidc/callback |
| 33 | +``` |
| 34 | + |
| 35 | +Replace `$clientid` and `$clientsecret` with the values from the OIDC Client in Pocket ID. Then restart Yuvomi and test the OIDC login. |
| 36 | + |
| 37 | +## Secure default for email verification |
| 38 | + |
| 39 | +Keep Yuvomi's fallback for a missing verification claim disabled: |
| 40 | + |
| 41 | +```env |
| 42 | +OIDC_TRUST_EMAIL_WITHOUT_VERIFIED_CLAIM=false |
| 43 | +``` |
| 44 | + |
| 45 | +This is the secure default. Yuvomi links an existing local account by email only when Pocket ID sends `email_verified: true` and exactly one local account has that email address. Do not set this option to `true` when Pocket ID can provide the claim. |
| 46 | + |
| 47 | +The redirect URL must match the callback URL registered in Pocket ID exactly. |
| 48 | + |
| 49 | +For the remaining OIDC options, account linking behavior, signup restrictions, and passwordless SSO, see Yuvomi's [SSO / OpenID Connect documentation](https://github.com/ulsklyc/yuvomi/blob/main/docs/installation.md#sso--openid-connect-optional). |
0 commit comments