Un jeton par appareil, révocable seul (2.2.0)
Tous les appareils partageaient le jeton du serveur : perdre un téléphone obligeait à changer ce jeton, donc à réappairer tout le monde. Chaque appairage émet désormais le sien. Révoquer devient une opération locale, vérifiée en appairant deux appareils puis en coupant le premier : 401 pour lui, 200 pour l'autre, jeton maître intact. L'interface du serveur les liste avec leur modèle, leur date d'appairage et leur dernière synchronisation — sans jamais afficher les jetons eux-mêmes, ce qui reviendrait à les distribuer. La table s'ajoute sans toucher aux données existantes et le jeton maître reste accepté : rien ne casse pour un appareil appairé avant cette version.
This commit is contained in:
1 parent
51b60cda70
commit
28cb545685
7 files changed
+130
-8
No files matched your search
@@ -13,6 +13,7 @@
|
||||
package fr.tuxgyver.noxely.sync
|
||||
|
||||
import android.content.Context
|
||||
import android.os.Build
|
||||
import fr.tuxgyver.noxely.library.ImportedStore
|
||||
import fr.tuxgyver.noxely.model.MediaEntry
|
||||
import fr.tuxgyver.noxely.model.MediaKind
|
||||
@@ -69,7 +70,10 @@ class SyncClient(
|
||||
val connection = openConnection("$base/api/pair", readTimeoutMs = 20_000).apply {
|
||||
requestMethod = "POST"
|
||||
doOutput = true
|
||||
outputStream.close()
|
||||
setRequestProperty("Content-Type", "application/json")
|
||||
// Le nom du modèle rend l'appareil reconnaissable dans la liste du serveur.
|
||||
val name = (Build.MANUFACTURER + " " + Build.MODEL).trim()
|
||||
outputStream.use { it.write(("{" + "\"name\":\"" + name + "\"}").toByteArray()) }
|
||||
}
|
||||
val body = try {
|
||||
when (connection.responseCode) {
|
||||
|
||||
Reference in new issue
Block a user