Skip to content

Commit 174bd07

Browse files
authored
Merge pull request #139 from immutable/feat/connect-imx-use-saved-credentials
[DX-2505] feat: connect imx use saved credentials if they exist so device flow is not triggered again
2 parents ffb2941 + 115f23d commit 174bd07

File tree

3 files changed

+19
-5
lines changed

3 files changed

+19
-5
lines changed

sample/Assets/Scripts/AuthenticatedScript.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,8 @@ public async void Connect()
8383
{
8484
// Use existing credentials to connect to Passport
8585
ShowOutput("Connecting into Passport using saved credentials...");
86-
ConnectButton.gameObject.SetActive(false);
87-
bool connected = await passport.ConnectImx(useCachedSession: true);
86+
ConnectButton.gameObject.SetActive(false);
87+
bool connected = await passport.ConnectImx();
8888
if (connected)
8989
{
9090
IsRegisteredOffchainButton.gameObject.SetActive(true);
@@ -96,13 +96,13 @@ public async void Connect()
9696
else
9797
{
9898
ShowOutput($"Could not connect using saved credentials");
99-
ConnectButton.gameObject.SetActive(true);
99+
ConnectButton.gameObject.SetActive(true);
100100
}
101101
}
102102
catch (Exception ex)
103103
{
104104
ShowOutput($"Connect() error: {ex.Message}");
105-
ConnectButton.gameObject.SetActive(true);
105+
ConnectButton.gameObject.SetActive(true);
106106
}
107107
}
108108

@@ -135,7 +135,7 @@ public async void RegisterOffchain()
135135
ShowOutput($"Registered {response.tx_hash}");
136136
}
137137
else
138-
{
138+
{
139139
ShowOutput($"Not registered");
140140
}
141141
}

sample/ProjectSettings/ProjectSettings.asset

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -771,6 +771,7 @@ PlayerSettings:
771771
platformArchitecture: {}
772772
scriptingBackend:
773773
Android: 1
774+
Standalone: 0
774775
il2cppCompilerConfiguration: {}
775776
managedStrippingLevel:
776777
EmbeddedLinux: 1

src/Packages/Passport/Runtime/Scripts/Private/PassportImpl.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,19 @@ public async UniTask<bool> ConnectImx(bool useCachedSession = false, Nullable<lo
144144
}
145145
else
146146
{
147+
// If the user called Login before and then ConnectImx, there is no point triggering device flow again
148+
bool hasCredsSaved = await HasCredentialsSaved();
149+
if (hasCredsSaved)
150+
{
151+
bool reconnected = await Reconnect();
152+
if (reconnected)
153+
{
154+
// Successfully reconnected
155+
return reconnected;
156+
}
157+
// Otherwise fallback to device code flow
158+
}
159+
147160
ConnectResponse connectResponse = await InitialiseDeviceCodeAuth(functionName);
148161
if (connectResponse != null)
149162
{

0 commit comments

Comments
 (0)