Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| software:monolith:user-qr [2026/01/05 01:55] – define USER_ID diamond | software:monolith:user-qr [2026/01/05 02:22] (current) – run prettier diamond | ||
|---|---|---|---|
| Line 17: | Line 17: | ||
| - Encodes at minimum the user ID and username | - Encodes at minimum the user ID and username | ||
| - Robust at allowing users to change username | - Robust at allowing users to change username | ||
| - | - Allow insecure/ | + | - Allow insecure/ |
| - Allow secure verification using remote server to obtain additional, more secretive information about current user (e.g., list of groups or avatar URL) | - Allow secure verification using remote server to obtain additional, more secretive information about current user (e.g., list of groups or avatar URL) | ||
| - QR Code must be small (has at most 4 eyes in most cases, rather than 9 eyes or more) | - QR Code must be small (has at most 4 eyes in most cases, rather than 9 eyes or more) | ||
| Line 63: | Line 63: | ||
| - The user's role is `admin`, meaning they belong in the `dma-admins` IdP group | - The user's role is `admin`, meaning they belong in the `dma-admins` IdP group | ||
| - The claims dates back to January 1st, 2026 | - The claims dates back to January 1st, 2026 | ||
| - | |||
| ### Signature Type and Part | ### Signature Type and Part | ||
| Line 88: | Line 87: | ||
| ### Implementation and Example | ### Implementation and Example | ||
| - | The following function implements the algorithm in Go using a fake random source to generate the Ed25519 key (INSECURE): | + | The following function implements the algorithm in Go using a fake random source to generate the Ed25519 key (INSECURE) |
| ```go | ```go | ||
| Line 123: | Line 122: | ||
| ### Frontend Server Design | ### Frontend Server Design | ||
| - | The frontend server must be able to handle `/QR` paths and perform a redirection to the Monolith API server' | + | The frontend server must be able to handle `/QR` paths and perform a redirection to the Monolith API server' |
| ### Verification Server Design | ### Verification Server Design | ||
| This section is not finalized. | This section is not finalized. | ||
| + | |||
| + | Proposed endpoints: | ||
| + | |||
| + | - `/qr/*`: same as `/QR/*` | ||
| + | - `/ | ||
| + | - `/ | ||
| + | - `/ | ||
| + | - `/ | ||
| ```sh | ```sh | ||
| - | curl -X GET "https://dma.space/QR/LMYTAMBMEJWWK33XNVSW653NMVXXO3LFN53W2ZLPO4RCYITNMVWWEZLSEJOQ.ED25519:V2OZNQJDFNNUJ26XOFY5SEKIG73RNGJJ7AI7YDTHD77V7VGTSXQA4MYH2KZIJT6RB7WAFZUU5DCMFEAB2KL5HZQG27HD7AZZGLPUAAI" | + | $ curl -X GET "HTTPS://DMA.SPACE/QR/10: |
| + | { | ||
| + | " | ||
| + | } | ||
| + | |||
| + | $ curl -X GET " | ||
| { | { | ||
| " | " | ||
| - | "qr_claims": | + | "claims": { |
| - | " | + | |
| " | " | ||
| " | " | ||
| Line 151: | Line 162: | ||
| However, the QR code can still be copied or stolen from others, so the whole system is not perfect and should not be used to gate access to critical things. | However, the QR code can still be copied or stolen from others, so the whole system is not perfect and should not be used to gate access to critical things. | ||
| + | |||