@@ -224,7 +224,7 @@ class LibreLinkUpConnection: SensorBluetoothConnection, IsSensor {
224
224
DirectLog . info ( " LibreLinkUp processLogin, apiRegion: \( apiRegion) " )
225
225
DirectLog . info ( " LibreLinkUp processLogin, authExpires: \( authExpires) " )
226
226
227
- let connectResponse = try await connect ( apiRegion: apiRegion, authToken: authToken)
227
+ let connectResponse = try await connect ( userID : userID , apiRegion: apiRegion, authToken: authToken)
228
228
229
229
guard let patientID = connectResponse. data? . first ( where: { $0. patientID == userID } ) ? . patientID ?? connectResponse. data? . first? . patientID else {
230
230
disconnectConnection ( )
@@ -234,7 +234,7 @@ class LibreLinkUpConnection: SensorBluetoothConnection, IsSensor {
234
234
235
235
DirectLog . info ( " LibreLinkUp processLogin, patientID: \( patientID) " )
236
236
237
- lastLogin = LibreLinkLogin ( patientID: patientID, apiRegion: apiRegion, authToken: authToken, authExpires: authExpires)
237
+ lastLogin = LibreLinkLogin ( userID : userID , patientID: patientID, apiRegion: apiRegion, authToken: authToken, authExpires: authExpires)
238
238
}
239
239
}
240
240
@@ -376,7 +376,7 @@ class LibreLinkUpConnection: SensorBluetoothConnection, IsSensor {
376
376
throw LibreLinkError . unknownError
377
377
}
378
378
379
- private func connect( apiRegion: String , authToken: String ) async throws -> LibreLinkResponse < [ LibreLinkResponseConnect ] > {
379
+ private func connect( userID : String , apiRegion: String , authToken: String ) async throws -> LibreLinkResponse < [ LibreLinkResponseConnect ] > {
380
380
DirectLog . info ( " LibreLinkUp connect " )
381
381
382
382
guard let url = URL ( string: " https://api- \( apiRegion) .libreview.io/llu/connections " ) else {
@@ -387,6 +387,7 @@ class LibreLinkUpConnection: SensorBluetoothConnection, IsSensor {
387
387
388
388
var request = URLRequest ( url: url)
389
389
request. setValue ( " Bearer \( authToken) " , forHTTPHeaderField: " Authorization " )
390
+ request. setValue ( userID. toSha256 ( ) , forHTTPHeaderField: " Account-Id " )
390
391
391
392
for (header, value) in requestHeaders {
392
393
request. setValue ( value, forHTTPHeaderField: header)
@@ -423,6 +424,7 @@ class LibreLinkUpConnection: SensorBluetoothConnection, IsSensor {
423
424
424
425
var request = URLRequest ( url: url)
425
426
request. setValue ( " Bearer \( lastLogin. authToken) " , forHTTPHeaderField: " Authorization " )
427
+ request. setValue ( lastLogin. userID. toSha256 ( ) , forHTTPHeaderField: " Account-Id " )
426
428
427
429
for (header, value) in requestHeaders {
428
430
request. setValue ( value, forHTTPHeaderField: header)
@@ -595,7 +597,8 @@ private struct LibreLinkResponseAuthentication: Codable {
595
597
private struct LibreLinkLogin {
596
598
// MARK: Lifecycle
597
599
598
- init ( patientID: String , apiRegion: String , authToken: String , authExpires: Double ) {
600
+ init ( userID: String , patientID: String , apiRegion: String , authToken: String , authExpires: Double ) {
601
+ self . userID = userID
599
602
self . patientID = patientID
600
603
self . apiRegion = apiRegion. lowercased ( )
601
604
self . authToken = authToken
@@ -604,6 +607,7 @@ private struct LibreLinkLogin {
604
607
605
608
// MARK: Internal
606
609
610
+ let userID : String
607
611
let patientID : String
608
612
let apiRegion : String
609
613
let authToken : String
0 commit comments