Skip to content

Commit 6c6c40f

Browse files
committed
Local SIWE auth fix
1 parent d8a5637 commit 6c6c40f

File tree

3 files changed

+17
-3
lines changed

3 files changed

+17
-3
lines changed

Thirdweb/Thirdweb.Wallets/InAppWallet/EcosystemWallet/EcosystemWallet.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,7 @@ private static async Task<string> GenerateWallet(IThirdwebHttpClient httpClient)
238238

239239
private async Task<string> PostAuth(Server.VerifyResult result)
240240
{
241+
this.HttpClient.RemoveHeader("Authorization");
241242
this.HttpClient.AddHeader("Authorization", $"Bearer embedded-wallet-token:{result.AuthToken}");
242243

243244
string address;
@@ -770,7 +771,7 @@ public async Task<string> LoginWithOauth(
770771
payload = HttpUtility.UrlDecode(queryDict["payload"]);
771772
var payloadData = JsonConvert.DeserializeObject<LoginPayloadData>(payload);
772773

773-
var serverRes = await this.EmbeddedWallet.SignInWithSiweRawAsync(payloadData, signature).ConfigureAwait(false);
774+
var serverRes = await this.EmbeddedWallet.SignInWithSiweExternalRawAsync(payloadData, signature).ConfigureAwait(false);
774775
return serverRes;
775776
}
776777

Thirdweb/Thirdweb.Wallets/InAppWallet/EmbeddedWallet.Authentication/Server.cs

+13
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ internal abstract class ServerBase
1515

1616
internal abstract Task<LoginPayloadData> FetchSiwePayloadAsync(string address, string chainId);
1717
internal abstract Task<Server.VerifyResult> VerifySiweAsync(LoginPayloadData payload, string signature);
18+
internal abstract Task<Server.VerifyResult> VerifySiweExternalAsync(LoginPayloadData payload, string signature);
1819

1920
internal abstract Task<Server.VerifyResult> VerifyBackendAsync(string walletSecret);
2021

@@ -141,6 +142,18 @@ internal override async Task<LoginPayloadData> FetchSiwePayloadAsync(string addr
141142
}
142143

143144
internal override async Task<VerifyResult> VerifySiweAsync(LoginPayloadData payload, string signature)
145+
{
146+
var uri = MakeUri2024("/login/siwe/callback");
147+
var content = MakeHttpContent(new { signature, payload });
148+
ThirdwebHttpResponseMessage response;
149+
response = await this._httpClient.PostAsync(uri.ToString(), content).ConfigureAwait(false);
150+
await CheckStatusCodeAsync(response).ConfigureAwait(false);
151+
152+
var authResult = await DeserializeAsync<AuthResultType>(response).ConfigureAwait(false);
153+
return await this.InvokeAuthResultLambdaAsync(authResult).ConfigureAwait(false);
154+
}
155+
156+
internal override async Task<VerifyResult> VerifySiweExternalAsync(LoginPayloadData payload, string signature)
144157
{
145158
var uri = MakeUri2024("/login/siwe/callback");
146159
var content = MakeHttpContent(new { signature, payload });

Thirdweb/Thirdweb.Wallets/InAppWallet/EmbeddedWallet/EmbeddedWallet.SIWE.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ internal partial class EmbeddedWallet
1414
return await this._server.VerifySiweAsync(payload, signature).ConfigureAwait(false);
1515
}
1616

17-
public async Task<Server.VerifyResult> SignInWithSiweRawAsync(LoginPayloadData payload, string signature)
17+
public async Task<Server.VerifyResult> SignInWithSiweExternalRawAsync(LoginPayloadData payload, string signature)
1818
{
19-
return await this._server.VerifySiweAsync(payload, signature).ConfigureAwait(false);
19+
return await this._server.VerifySiweExternalAsync(payload, signature).ConfigureAwait(false);
2020
}
2121
}

0 commit comments

Comments
 (0)