docs(user): pairing-code flow for device setup guides
The setup guides walked the retired broadcast-list approve ("your device
appears under Pending Device Registrations — click Approve"), which no
longer exists. Both now describe the pairing-code flow: the e-reader
displays a 6-digit code, you type it into Pair a Device on your own
account, and only whoever holds the device can read the code — the
family-server gap that motivated the change. Adds a Pairing Code Not
Accepted troubleshooting case, refreshes the security practices
(claim only codes you can see on a device you are holding), and aligns
the remaining approval/pending wording throughout.
This commit is contained in:
1 parent
3e98fadb9f
commit
5211edf264
2 files changed
+52
-28
No files matched your search
@@ -1,4 +1,4 @@
|
|||||||
<!-- Ground truth: bookhoard.koplugin main.lua (menu tree, defaults, approval
|
<!-- Ground truth: bookhoard.koplugin main.lua (menu tree, defaults, pairing
|
||||||
flow) + the server-side koreader endpoints. Re-verify against the plugin
|
flow) + the server-side koreader endpoints. Re-verify against the plugin
|
||||||
source when the plugin changes. KOReader ITSELF is out of scope: this
|
source when the plugin changes. KOReader ITSELF is out of scope: this
|
||||||
guide supports the plugin only, and installation is delegated to the
|
guide supports the plugin only, and installation is delegated to the
|
||||||
@@ -31,7 +31,7 @@ It also runs on Android tablets and phones — though on Android the dedicated
|
|||||||
Before you begin, make sure you have:
|
Before you begin, make sure you have:
|
||||||
|
|
||||||
- ✅ A Bookhoard instance running and accessible on your network
|
- ✅ A Bookhoard instance running and accessible on your network
|
||||||
- ✅ A web browser logged in to your Bookhoard account (for device approval)
|
- ✅ A web browser logged in to your Bookhoard account (to enter the pairing code)
|
||||||
- ✅ KOReader installed and running on your e-reader (see next section)
|
- ✅ KOReader installed and running on your e-reader (see next section)
|
||||||
- ✅ Your device connected to the same Wi-Fi network as your Bookhoard instance
|
- ✅ Your device connected to the same Wi-Fi network as your Bookhoard instance
|
||||||
|
|
||||||
@@ -55,8 +55,9 @@ whatever device you're on.
|
|||||||
|
|
||||||
## Connecting KOReader to Bookhoard
|
## Connecting KOReader to Bookhoard
|
||||||
|
|
||||||
Setup is done **on the server**: you approve the device from the Bookhoard
|
Setup is done **on the server**: your e-reader shows a pairing code, and you
|
||||||
web interface — no usernames, passwords, or tokens to type on the device.
|
type it into your own account's Devices page — no usernames, passwords, or
|
||||||
|
tokens to type on the device.
|
||||||
|
|
||||||
### Step 1: Install the Bookhoard Plugin
|
### Step 1: Install the Bookhoard Plugin
|
||||||
|
|
||||||
@@ -88,23 +89,27 @@ Then restart KOReader.
|
|||||||
### Step 3: Register the Device
|
### Step 3: Register the Device
|
||||||
|
|
||||||
1. In the same **Bookhoard sync** menu, tap **Register device**
|
1. In the same **Bookhoard sync** menu, tap **Register device**
|
||||||
2. On your computer or phone, open Bookhoard and go to the **Devices** page
|
2. Your e-reader displays a **6-digit pairing code**
|
||||||
(sidebar navigation)
|
3. On your computer or phone, open Bookhoard — logged into **your** account —
|
||||||
3. Your device appears under **Pending Device Registrations** — click
|
and go to the **Devices** page (sidebar navigation)
|
||||||
**Approve** to connect it
|
4. Type the code into the **Pair a Device** field and click **Find device**,
|
||||||
|
then confirm on the card that appears
|
||||||
|
|
||||||
The plugin waits on the device and finishes by itself the moment you
|
The code is the only way to claim the registration, and only someone holding
|
||||||
approve. Once approved, its credentials are stored automatically, sync
|
the device can read it — so the device always lands in the account of the
|
||||||
events are armed, and Bookhoard's OPDS catalog is added to your KOReader —
|
person who registered it. The plugin waits on the device and finishes by
|
||||||
no further configuration is needed.
|
itself the moment you confirm. Once paired, its credentials are stored
|
||||||
|
automatically, sync events are armed, and Bookhoard's OPDS catalog is added to
|
||||||
|
your KOReader — no further configuration is needed.
|
||||||
|
|
||||||
> **Note:** Pending registrations expire after 5 minutes. If yours expires
|
> **Note:** Pairing codes expire after 5 minutes. If yours expires
|
||||||
> ("Registration expired"), just tap **Register device** again and approve.
|
> ("Registration expired"), just tap **Register device** again for a fresh
|
||||||
|
> one. Dismissing the waiting dialog on the device cancels the attempt.
|
||||||
|
|
||||||
### Auth Token (Advanced)
|
### Auth Token (Advanced)
|
||||||
|
|
||||||
The Devices page shows each KOReader device's **Auth Token**. You normally
|
The Devices page shows each KOReader device's **Auth Token**. You normally
|
||||||
never need it (the plugin receives it automatically during approval), but it
|
never need it (the plugin receives it automatically during pairing), but it
|
||||||
can be re-entered manually in the plugin settings if you're moving a setup
|
can be re-entered manually in the plugin settings if you're moving a setup
|
||||||
between devices or debugging.
|
between devices or debugging.
|
||||||
|
|
||||||
@@ -116,7 +121,7 @@ sync**. The menu changes shape depending on whether you are connected.
|
|||||||
### Before you're connected
|
### Before you're connected
|
||||||
|
|
||||||
- **Server URL** — your server's address
|
- **Server URL** — your server's address
|
||||||
- **Register device** — starts the approval flow above
|
- **Register device** — starts the pairing flow above
|
||||||
|
|
||||||
### Once connected — one-tap actions
|
### Once connected — one-tap actions
|
||||||
|
|
||||||
@@ -132,7 +137,7 @@ sync**. The menu changes shape depending on whether you are connected.
|
|||||||
### Automatically push progress
|
### Automatically push progress
|
||||||
|
|
||||||
This toggle is the on/off switch for background sync — **it starts off**, so
|
This toggle is the on/off switch for background sync — **it starts off**, so
|
||||||
after approval, turn it on to get automatic syncing. With it on, progress
|
after pairing, turn it on to get automatic syncing. With it on, progress
|
||||||
pushes as you read and on close/suspend; the plugin may prompt about turning
|
pushes as you read and on close/suspend; the plugin may prompt about turning
|
||||||
Wi-Fi on at those moments depending on your device.
|
Wi-Fi on at those moments depending on your device.
|
||||||
|
|
||||||
@@ -216,14 +221,26 @@ their progress syncs from the first page.
|
|||||||
|
|
||||||
### Pending Registration Never Appears
|
### Pending Registration Never Appears
|
||||||
|
|
||||||
**Problem**: You entered the Server URL, but no pending registration shows in Bookhoard
|
**Problem**: You entered the Server URL, but no pairing code shows on the device
|
||||||
|
|
||||||
**Solutions**:
|
**Solutions**:
|
||||||
|
|
||||||
1. Verify the Server URL is correct (no trailing path — just the base address)
|
1. Verify the Server URL is correct (no trailing path — just the base address)
|
||||||
2. Make sure KOReader is connected to Wi-Fi
|
2. Make sure KOReader is connected to Wi-Fi
|
||||||
3. Check the Bookhoard server is reachable from the device's network
|
3. Check the Bookhoard server is reachable from the device's network
|
||||||
4. Registrations expire after 5 minutes — tap **Register device** again and approve quickly
|
4. Registrations expire after 5 minutes — tap **Register device** again
|
||||||
|
|
||||||
|
### Pairing Code Not Accepted
|
||||||
|
|
||||||
|
**Problem**: The Devices page says "No waiting device matches that code"
|
||||||
|
|
||||||
|
**Solutions**:
|
||||||
|
|
||||||
|
1. Re-read the code on the device — it refreshes on every **Register device** tap
|
||||||
|
2. Check you typed all 6 digits (spacing doesn't matter)
|
||||||
|
3. Codes expire after 5 minutes — register again on the device and type the new code
|
||||||
|
4. "Pairing code already used" means the device already paired (check the device list); otherwise register again
|
||||||
|
5. Too many attempts lock new tries for a minute — wait and retry
|
||||||
|
|
||||||
### Connection Refused
|
### Connection Refused
|
||||||
|
|
||||||
@@ -236,9 +253,9 @@ their progress syncs from the first page.
|
|||||||
- Ensure the device is on the same Wi-Fi network as the server
|
- Ensure the device is on the same Wi-Fi network as the server
|
||||||
- Use the server's LAN IP instead of `localhost`
|
- Use the server's LAN IP instead of `localhost`
|
||||||
|
|
||||||
### Sync Not Working After Approval
|
### Sync Not Working After Pairing
|
||||||
|
|
||||||
**Problem**: Device shows as approved but changes don't appear in Bookhoard
|
**Problem**: Device shows as paired but changes don't appear in Bookhoard
|
||||||
|
|
||||||
**Solutions**:
|
**Solutions**:
|
||||||
|
|
||||||
@@ -271,7 +288,9 @@ For day-to-day control of the same question on the device itself, use the
|
|||||||
|
|
||||||
1. **Use HTTPS**: If exposing Bookhoard beyond your LAN, configure SSL/TLS
|
1. **Use HTTPS**: If exposing Bookhoard beyond your LAN, configure SSL/TLS
|
||||||
2. **Network Security**: Ensure your Wi-Fi network is secure (WPA2/WPA3)
|
2. **Network Security**: Ensure your Wi-Fi network is secure (WPA2/WPA3)
|
||||||
3. **Device Authorization**: Only approve pending registrations you initiated
|
3. **Claim only codes you can see**: a pairing code is readable only on the
|
||||||
|
registering device's screen — never claim a code someone merely told you
|
||||||
|
if you can't see the device showing it
|
||||||
4. **Revoke lost devices**: Remove devices you no longer use from the Devices page
|
4. **Revoke lost devices**: Remove devices you no longer use from the Devices page
|
||||||
|
|
||||||
## Additional Resources
|
## Additional Resources
|
||||||
|
|||||||
+11
-6
@@ -17,9 +17,14 @@ notes — and every registered device pushes and pulls against it.
|
|||||||
## Getting a device into the circle
|
## Getting a device into the circle
|
||||||
|
|
||||||
1. Connect the device to your server (each guide above walks its own path)
|
1. Connect the device to your server (each guide above walks its own path)
|
||||||
2. Approve the pending registration on the **Devices** page — the Android
|
2. Pair it on the **Devices** page — the Android app registers itself on
|
||||||
app registers itself on first login; KOReader asks from its plugin
|
first login; KOReader shows a 6-digit pairing code that you type into
|
||||||
3. Done. Sync starts as soon as a device is approved
|
**Pair a Device** on the page
|
||||||
|
3. Done. Sync starts as soon as a device is paired
|
||||||
|
|
||||||
|
Only the person holding the device can read its pairing code, so a device
|
||||||
|
always lands in the account of whoever registered it — even on a family
|
||||||
|
server where more than one person is logged in.
|
||||||
|
|
||||||
The **Devices** page is mission control: see every registered device and
|
The **Devices** page is mission control: see every registered device and
|
||||||
when it was last seen, remove a device (revoking its access instantly), and
|
when it was last seen, remove a device (revoking its access instantly), and
|
||||||
@@ -61,7 +66,7 @@ phone lands in the right place on an e-reader with different pagination.
|
|||||||
**Bookmarks** — location, title, and when you made them.
|
**Bookmarks** — location, title, and when you made them.
|
||||||
|
|
||||||
Everything above is per-user and private: your devices see your data
|
Everything above is per-user and private: your devices see your data
|
||||||
because you approved them, other users see theirs, and revoking a device
|
because you paired them, other users see theirs, and revoking a device
|
||||||
ends its access on the spot.
|
ends its access on the spot.
|
||||||
|
|
||||||
## Conflicts
|
## Conflicts
|
||||||
@@ -98,13 +103,13 @@ alone.
|
|||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|
||||||
**Progress not updating**
|
**Progress not updating**
|
||||||
Check the device is still on the **Devices** page and was approved; check
|
Check the device is still on the **Devices** page and was paired; check
|
||||||
the server URL in the device's settings; confirm the device can reach the
|
the server URL in the device's settings; confirm the device can reach the
|
||||||
server (open the server URL in the device's browser as a test).
|
server (open the server URL in the device's browser as a test).
|
||||||
|
|
||||||
**"Device not found"**
|
**"Device not found"**
|
||||||
The device was removed or its token revoked — register it again and
|
The device was removed or its token revoked — register it again and
|
||||||
approve it.
|
enter the fresh pairing code.
|
||||||
|
|
||||||
**A conflict keeps coming back**
|
**A conflict keeps coming back**
|
||||||
Two devices are genuinely fighting over the same book. Decide which device
|
Two devices are genuinely fighting over the same book. Decide which device
|
||||||
|
|||||||
Reference in new issue
Block a user