Skip to content

Commit 451b911

Browse files
Merge pull request #67 from Web3Auth/config-update
Make redirectUrl mandatory in W3AInitParams
2 parents 3126dbc + 99f1a32 commit 451b911

File tree

4 files changed

+55
-38
lines changed

4 files changed

+55
-38
lines changed

Sources/Web3Auth/Types.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ public struct W3ALoginConfig: Codable {
176176
}
177177

178178
public struct W3AInitParams: Codable {
179-
public init(clientId: String, network: Network, buildEnv: BuildEnv? = BuildEnv.production, sdkUrl: URL? = nil, walletSdkUrl: URL? = nil, redirectUrl: String? = nil, loginConfig: [String: W3ALoginConfig]? = nil, whiteLabel: W3AWhiteLabelData? = nil, chainNamespace: ChainNamespace? = ChainNamespace.eip155, useCoreKitKey: Bool? = false, mfaSettings: MfaSettings? = nil, sessionTime: Int = 86400) {
179+
public init(clientId: String, network: Network, buildEnv: BuildEnv? = BuildEnv.production, sdkUrl: URL? = nil, walletSdkUrl: URL? = nil, redirectUrl: String, loginConfig: [String: W3ALoginConfig]? = nil, whiteLabel: W3AWhiteLabelData? = nil, chainNamespace: ChainNamespace? = ChainNamespace.eip155, useCoreKitKey: Bool? = false, mfaSettings: MfaSettings? = nil, sessionTime: Int = 86400) {
180180
self.clientId = clientId
181181
self.network = network
182182
self.buildEnv = buildEnv
@@ -199,13 +199,13 @@ public struct W3AInitParams: Codable {
199199
self.sessionTime = min(7 * 86400, sessionTime)
200200
}
201201

202-
public init(clientId: String, network: Network) {
202+
public init(clientId: String, network: Network, redirectUrl: String) {
203203
self.clientId = clientId
204204
self.network = network
205205
buildEnv = BuildEnv.production
206206
sdkUrl = URL(string: getSdkUrl(buildEnv: buildEnv))
207207
walletSdkUrl = URL(string: getWalletSdkUrl(buildEnv: self.buildEnv))
208-
redirectUrl = nil
208+
self.redirectUrl = redirectUrl
209209
loginConfig = nil
210210
whiteLabel = nil
211211
chainNamespace = ChainNamespace.eip155
@@ -220,7 +220,7 @@ public struct W3AInitParams: Codable {
220220
let buildEnv: BuildEnv?
221221
var sdkUrl: URL?
222222
var walletSdkUrl: URL?
223-
var redirectUrl: String?
223+
var redirectUrl: String
224224
let loginConfig: [String: W3ALoginConfig]?
225225
let whiteLabel: W3AWhiteLabelData?
226226
let chainNamespace: ChainNamespace?
@@ -246,7 +246,7 @@ public struct W3AInitParams: Codable {
246246
} else {
247247
walletSdkUrl = URL(string: getWalletSdkUrl(buildEnv: buildEnv))
248248
}
249-
redirectUrl = try values.decodeIfPresent(String.self, forKey: .redirectUrl)
249+
redirectUrl = try values.decode(String.self, forKey: .redirectUrl)
250250
loginConfig = try values.decodeIfPresent([String: W3ALoginConfig].self, forKey: .loginConfig)
251251
whiteLabel = try values.decodeIfPresent(W3AWhiteLabelData.self, forKey: .whiteLabel)
252252
chainNamespace = try values.decodeIfPresent(ChainNamespace.self, forKey: .chainNamespace) ?? ChainNamespace.eip155

Sources/Web3Auth/Util.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import Foundation
22

3-
func plistValues(_ bundle: Bundle) -> (clientId: String, network: Network)? {
3+
func plistValues(_ bundle: Bundle) -> (clientId: String, network: Network, redirectUrl: String)? {
44
guard
55
let path = bundle.path(forResource: "Web3Auth", ofType: "plist"),
66
let values = NSDictionary(contentsOfFile: path) as? [String: Any]
@@ -12,13 +12,14 @@ func plistValues(_ bundle: Bundle) -> (clientId: String, network: Network)? {
1212
guard
1313
let clientId = values["ClientId"] as? String,
1414
let networkValue = values["Network"] as? String,
15+
let redirectUrl = values["RedirectUrl"] as? String,
1516
let network = Network(rawValue: networkValue)
1617
else {
1718
print("Web3Auth.plist file at \(path) is missing or having incorrect 'ClientId' and/or 'Network' entries!")
1819
print("File currently has the following entries: \(values)")
1920
return nil
2021
}
21-
return (clientId: clientId, network: network)
22+
return (clientId: clientId, network: network, redirectUrl)
2223
}
2324

2425
func decodedBase64(_ base64URLSafe: String) -> Data? {

Sources/Web3Auth/Web3Auth.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,11 @@ public class Web3Auth: NSObject {
9494
*/
9595
public convenience init(_ bundle: Bundle = Bundle.main) async {
9696
let values = plistValues(bundle)!
97-
await self.init(W3AInitParams(clientId: values.clientId, network: values.network))
97+
await self.init(W3AInitParams(
98+
clientId: values.clientId,
99+
network: values.network,
100+
redirectUrl: values.redirectUrl
101+
))
98102
}
99103

100104
/**

Web3authSwiftSdkDemo/Web3authSwiftSdkDemo/ViewModel.swift

Lines changed: 42 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ class ViewModel: ObservableObject {
2121
@Published var showError: Bool = false
2222
var errorMessage: String = ""
2323
private var clientID: String = "BG4pe3aBso5SjVbpotFQGnXVHgxhgOxnqnNBKyjfEJ3izFvIVWUaMIzoCrAfYag8O6t6a6AOvdLcS4JR2sQMjR4"
24+
private var redirectUrl: String = "com.web3auth.sdkapp://auth"
2425
private var network: Network = .sapphire_devnet
2526
private var buildEnv: BuildEnv = .testing
2627
// private var clientID: String = "BEaGnq-mY0ZOXk2UT1ivWUe0PZ_iJX4Vyb6MtpOp7RMBu_6ErTrATlfuK3IaFcvHJr27h6L1T4owkBH6srLphIw"
@@ -37,7 +38,7 @@ class ViewModel: ObservableObject {
3738
typeOfLogin: TypeOfLogin.jwt,
3839
clientId: "d84f6xvbdV75VTGmHiMWfZLeSPk8M07C"
3940
)
40-
41+
4142
func setup() async {
4243
guard web3Auth == nil else { return }
4344
await MainActor.run(body: {
@@ -58,7 +59,7 @@ class ViewModel: ObservableObject {
5859
navigationTitle = loggedIn ? "UserInfo" : "SignIn"
5960
})
6061
}
61-
62+
6263
@MainActor func handleUserDetails() {
6364
do {
6465
loggedIn = true
@@ -70,57 +71,64 @@ class ViewModel: ObservableObject {
7071
showError = true
7172
}
7273
}
73-
74+
7475
func getSignResponse() -> SignResponse? {
7576
return try? Web3Auth.getSignResponse()
7677
}
77-
78+
7879
func login(provider: Web3AuthProvider) {
7980
Task {
8081
do {
8182
_ = try await web3Auth?.login(W3ALoginParams(loginProvider: provider,
82-
extraLoginOptions: ExtraLoginOptions(display: nil, prompt: nil, max_age: nil, ui_locales: nil, id_token_hint: nil, id_token: nil, login_hint: "[email protected]", acr_values: nil, scope: nil, audience: nil, connection: nil, domain: nil, client_id: nil, redirect_uri: nil, leeway: nil, verifierIdField: nil, isVerifierIdCaseSensitive: nil, additionalParams: nil),
83-
mfaLevel: .DEFAULT,
84-
curve: .SECP256K1
85-
))
83+
extraLoginOptions: ExtraLoginOptions(display: nil, prompt: nil, max_age: nil, ui_locales: nil, id_token_hint: nil, id_token: nil, login_hint: "[email protected]", acr_values: nil, scope: nil, audience: nil, connection: nil, domain: nil, client_id: nil, redirect_uri: nil, leeway: nil, verifierIdField: nil, isVerifierIdCaseSensitive: nil, additionalParams: nil),
84+
mfaLevel: .DEFAULT,
85+
curve: .SECP256K1
86+
))
8687
await handleUserDetails()
8788
} catch {
8889
print("Error")
8990
}
9091
}
9192
}
92-
93+
9394
func loginWithGoogle(provider: Web3AuthProvider) {
9495
Task {
9596
do {
96-
web3Auth = await Web3Auth(.init(clientId: clientID, network: network, buildEnv: buildEnv, useCoreKitKey: useCoreKit))
97+
web3Auth = await Web3Auth(.init(
98+
clientId: clientID,
99+
network: network,
100+
buildEnv: buildEnv,
101+
redirectUrl: redirectUrl,
102+
useCoreKitKey: useCoreKit
103+
))
97104
_ = try await web3Auth?.login(W3ALoginParams(loginProvider: provider,
98-
mfaLevel: .DEFAULT,
99-
curve: .SECP256K1
100-
))
105+
mfaLevel: .DEFAULT,
106+
curve: .SECP256K1
107+
))
101108
await handleUserDetails()
102109
} catch {
103110
print("Error")
104111
}
105112
}
106113
}
107-
114+
108115
func loginWithGoogleCustomVerifier() {
109116
Task {
110117
do {
111118
web3Auth = await Web3Auth(.init(
112119
clientId: clientID,
113120
network: network,
114121
buildEnv: buildEnv,
122+
redirectUrl: redirectUrl,
115123
loginConfig: [
116124
"random":
117-
.init(
118-
verifier: "w3a-agg-example",
119-
typeOfLogin: .google,
120-
name: "Web3Auth-Aggregate-Verifier-Google-Example",
121-
clientId: "774338308167-q463s7kpvja16l4l0kko3nb925ikds2p.apps.googleusercontent.com",
122-
verifierSubIdentifier: "w3a-google"
123-
)
125+
.init(
126+
verifier: "w3a-agg-example",
127+
typeOfLogin: .google,
128+
name: "Web3Auth-Aggregate-Verifier-Google-Example",
129+
clientId: "774338308167-q463s7kpvja16l4l0kko3nb925ikds2p.apps.googleusercontent.com",
130+
verifierSubIdentifier: "w3a-google"
131+
)
124132
]
125133
)
126134
)
@@ -138,7 +146,7 @@ class ViewModel: ObservableObject {
138146
}
139147
}
140148
}
141-
149+
142150
@MainActor func logout() {
143151
Task {
144152
do {
@@ -150,7 +158,7 @@ class ViewModel: ObservableObject {
150158
}
151159
}
152160
}
153-
161+
154162
@MainActor func launchWalletServices() {
155163
Task {
156164
do {
@@ -161,13 +169,14 @@ class ViewModel: ObservableObject {
161169
}
162170
}
163171
}
164-
172+
165173
@MainActor func enableMFA() {
166174
Task {
167175
do {
168176
web3Auth = await Web3Auth(W3AInitParams(clientId: clientID,
169177
network: network,
170178
buildEnv: buildEnv,
179+
redirectUrl: redirectUrl,
171180
whiteLabel: W3AWhiteLabelData(appName: "Web3Auth Stub", defaultLanguage: .en, mode: .dark, theme: ["primary": "#123456"])))
172181
_ = try await self.web3Auth?.enableMFA()
173182
} catch {
@@ -176,7 +185,7 @@ class ViewModel: ObservableObject {
176185
}
177186
}
178187
}
179-
188+
180189
@MainActor func request() {
181190
Task {
182191
do {
@@ -197,14 +206,17 @@ class ViewModel: ObservableObject {
197206
}
198207
}
199208
}
200-
209+
201210
func whitelabelLogin() {
202211
Task.detached { [unowned self] in
203212
do {
204-
web3Auth = await Web3Auth(W3AInitParams(clientId: clientID,
205-
network: network,
206-
buildEnv: buildEnv,
207-
whiteLabel: W3AWhiteLabelData(appName: "Web3Auth Stub", defaultLanguage: .en, mode: .dark, theme: ["primary": "#123456"])))
213+
web3Auth = await Web3Auth(
214+
W3AInitParams(
215+
clientId: clientID,
216+
network: network,
217+
buildEnv: buildEnv,
218+
redirectUrl: redirectUrl,
219+
whiteLabel: W3AWhiteLabelData(appName: "Web3Auth Stub", defaultLanguage: .en, mode: .dark, theme: ["primary": "#123456"])))
208220
_ = try await self.web3Auth?
209221
.login(W3ALoginParams(loginProvider: .GOOGLE))
210222
await handleUserDetails()

0 commit comments

Comments
 (0)