Device Linking
Device linking allows you to sign in to an Odeion app on a new device without typing your server URL and password. Instead, you generate a short code on a device where you are already logged in and enter it on the new device.
How It Works
Section titled “How It Works”-
On a device where you’re already signed in, generate a link code from Settings. The web and mobile apps both expose it in the same place. A 5-character alphanumeric code is displayed (for example,
ABC12). -
Open the Odeion app on the device you want to sign in to (phone, TV, Roku, etc.) and select the device code login option. Enter the 5-character code.
-
The new device resolves the code through the link service, connects to your server, and completes the login automatically.
How It Works Internally
Section titled “How It Works Internally”The flow bridges the gap between the new device (which does not know your server URL yet) and your server through a public relay:
| Property | Value |
|---|---|
| Relay service | link.odeion.app, holds codes in memory only |
| Code format | 5 alphanumeric characters |
| Validity | 10 minutes, single-use |
| What the relay stores | Your server’s URL plus a short-lived login token, deleted on use or expiry |
Generating a code registers a login token and your server URL with the relay. Entering the code on the new device resolves that mapping, and the device connects to your server directly to finish the login. The session that results is a normal server-side session for your account.
Errors and Retries
Section titled “Errors and Retries”- A mistyped or expired code fails with an invalid-code error. Codes are not guessable in practice, and there is no lockout: just generate a fresh code and try again.
- A code that was already used cannot be redeemed twice; generate a new one.
- A locked account cannot complete a device login.
Requirements
Section titled “Requirements”Device linking requires your Odeion server to be accessible over HTTPS at its configured base URL. The link service needs to be able to include your server’s URL in the code mapping, and the device completing the login needs to reach your server to finalize authentication.
If your server is only accessible on a local network (no public HTTPS), device linking will not work. In that case, use the server URL + username/password login option instead.