Skip to content

Commit 36b0b92

Browse files
Merge pull request #17 from Web3Auth/feat/namespace
Feat/namespace
2 parents 8e7031a + 2ffbd2d commit 36b0b92

File tree

3 files changed

+20
-9
lines changed

3 files changed

+20
-9
lines changed

Sources/SessionManager/Models/SignatureModel.swift

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,28 @@ struct SessionRequestModel: Codable {
1616
var signature: String
1717
var timeout: Int
1818
var allowedOrigin: String?
19+
var namespace: String?
1920

20-
public init(key: String, data: String, signature: String, timeout: Int, allowedOrigin: String? = "*") {
21+
public init(key: String, data: String, signature: String, timeout: Int, allowedOrigin: String? = "*", namespace: String? = nil) {
2122
self.key = key
2223
self.data = data
2324
self.signature = signature
2425
self.timeout = timeout
2526
self.allowedOrigin = allowedOrigin
27+
if namespace != nil {
28+
self.namespace = namespace
29+
}
2630
}
2731
}
2832

2933
struct AuthorizeSessionRequest: Codable {
3034
var key: String
31-
public init(key: String) {
35+
var namespace: String?
36+
public init(key: String, namespace: String?) {
3237
self.key = key
38+
if namespace != nil {
39+
self.namespace = namespace
40+
}
3341
}
3442
}
3543

Sources/SessionManager/SessionManager.swift

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public class SessionManager {
1212
private var sessionServerBaseUrl = "https://session.web3auth.io/v2/"
1313
private var sessionId: String = ""
1414

15-
private let sessionNamespace: String = ""
15+
private var sessionNamespace: String = ""
1616
private let sessionTime: Int
1717
private let allowedOrigin: String
1818

@@ -34,10 +34,13 @@ public class SessionManager {
3434
return KeychainManager.shared.delete(key: .sessionID)
3535
}
3636

37-
public init(sessionServerBaseUrl: String? = nil, sessionTime: Int = 86400, allowedOrigin: String? = "*", sessionId: String? = nil) {
37+
public init(sessionServerBaseUrl: String? = nil, sessionTime: Int = 86400, allowedOrigin: String? = "*", sessionId: String? = nil, sessionNamespace: String? = nil) {
3838
if sessionId != nil {
3939
self.sessionId = sessionId!
4040
}
41+
if sessionNamespace != nil {
42+
self.sessionNamespace = sessionNamespace!
43+
}
4144
if let sessionServerBaseUrl = sessionServerBaseUrl {
4245
self.sessionServerBaseUrl = sessionServerBaseUrl
4346
}
@@ -87,7 +90,7 @@ public class SessionManager {
8790
guard let sigJsonStr = String(data: sigData, encoding: .utf8) else {
8891
throw SessionManagerError.stringEncodingError
8992
}
90-
let sessionRequestModel = SessionRequestModel(key: publicKeyHex, data: encData, signature: sigJsonStr, timeout: sessionTime, allowedOrigin: allowedOrigin)
93+
let sessionRequestModel = SessionRequestModel(key: publicKeyHex, data: encData, signature: sigJsonStr, timeout: sessionTime, allowedOrigin: allowedOrigin, namespace: sessionNamespace)
9194
let api = Router.set(T: sessionRequestModel)
9295
let result = await Service.request(router: api)
9396
switch result {
@@ -113,7 +116,7 @@ public class SessionManager {
113116
let sessionSecret = try curveSecp256k1.SecretKey(hex: sessionId)
114117

115118
let publicKeyHex = try sessionSecret.toPublic().serialize(compressed: false)
116-
let authorizeSession = AuthorizeSessionRequest(key: publicKeyHex)
119+
let authorizeSession = AuthorizeSessionRequest(key: publicKeyHex, namespace: sessionNamespace)
117120
let api = Router.authorizeSession(T: authorizeSession, origin: origin)
118121
let result = await Service.request(router: api)
119122
switch result {

Tests/SessionManagerTests/SessionManagementTest.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@ final class SessionManagementTest: XCTestCase {
1717

1818
func test_createSessionID() async throws {
1919
let sessionId = try SessionManager.generateRandomSessionID();
20-
let session = SessionManager(sessionId: sessionId)
20+
let session = SessionManager(sessionId: sessionId, sessionNamespace: "sfa")
2121
let (privKey, pubKey) = try generatePrivateandPublicKey()
2222
let sfa = SFAModel(publicKey: pubKey, privateKey: privKey)
2323
let _ = try await session.createSession(data: sfa)
2424
}
2525

2626
func test_authoriseSessionID() async throws {
2727
let sessionId = try SessionManager.generateRandomSessionID();
28-
let session = SessionManager(sessionId: sessionId)
28+
let session = SessionManager(sessionId: sessionId, sessionNamespace: "sfa")
2929
let (privKey, pubKey) = try generatePrivateandPublicKey()
3030
let sfa = SFAModel(publicKey: pubKey, privateKey: privKey)
3131
let created = try await session.createSession(data: sfa)
@@ -70,7 +70,7 @@ final class SessionManagementTest: XCTestCase {
7070

7171
func test_invalidateSession() async throws {
7272
let sessionId = try SessionManager.generateRandomSessionID();
73-
let session = SessionManager(sessionId: sessionId)
73+
let session = SessionManager(sessionId: sessionId, sessionNamespace: "sfa")
7474
let (privKey, pubKey) = try generatePrivateandPublicKey()
7575
let sfa = SFAModel(publicKey: pubKey, privateKey: privKey)
7676
let created = try await session.createSession(data: sfa)

0 commit comments

Comments
 (0)