diff --git a/RiotSwiftUI/Modules/Authentication/QRLogin/Common/Models/QRLoginCode.swift b/RiotSwiftUI/Modules/Authentication/QRLogin/Common/Models/QRLoginCode.swift index 1c0a81375..7e93d7908 100644 --- a/RiotSwiftUI/Modules/Authentication/QRLogin/Common/Models/QRLoginCode.swift +++ b/RiotSwiftUI/Modules/Authentication/QRLogin/Common/Models/QRLoginCode.swift @@ -84,6 +84,7 @@ struct QRLoginRendezvousPayload: Codable { enum Intent: String, Codable { case loginStart = "login.start" + case loginReciprocate = "login.reciprocate" } enum Outcome: String, Codable { diff --git a/RiotSwiftUI/Modules/Authentication/QRLogin/Common/Service/MatrixSDK/QRLoginService.swift b/RiotSwiftUI/Modules/Authentication/QRLogin/Common/Service/MatrixSDK/QRLoginService.swift index d441dec0b..15b1febcc 100644 --- a/RiotSwiftUI/Modules/Authentication/QRLogin/Common/Service/MatrixSDK/QRLoginService.swift +++ b/RiotSwiftUI/Modules/Authentication/QRLogin/Common/Service/MatrixSDK/QRLoginService.swift @@ -169,7 +169,8 @@ class QRLoginService: NSObject, QRLoginServiceProtocol { MXLog.debug("[QRLoginService] processQRLoginCode: \(code)") state = .connectingToDevice - guard let uri = code.rendezvous.transport?.uri, + guard code.intent == QRLoginRendezvousPayload.Intent.loginReciprocate.rawValue, + let uri = code.rendezvous.transport?.uri, let rendezvousURL = URL(string: uri), let key = code.rendezvous.key else { MXLog.debug("[QRLoginService] QR code invalid") @@ -190,8 +191,6 @@ class QRLoginService: NSObject, QRLoginServiceProtocol { state = .waitingForConfirmation(validationCode) - // TODO: check compatibility of intents - MXLog.debug("[QRLoginService] Waiting for available protocols") guard case let .success(data) = await rendezvousService.receive(), let responsePayload = try? JSONDecoder().decode(QRLoginRendezvousPayload.self, from: data) else {