Passkey registration and authentication only work on native devices (iOS/Android), not in the Unity Editor.
Register a passkey
Copy
Ask AI
await DynamicSDK.Instance.Passkeys.RegisterPasskey();
List passkeys
Copy
Ask AI
List<UserPasskey> passkeys = await DynamicSDK.Instance.Passkeys.GetPasskeys();
foreach (var pk in passkeys)
{
Debug.Log($"Passkey: {pk.Id}, created: {pk.CreatedAt}");
}
Authenticate with passkey (MFA)
Copy
Ask AI
var result = await DynamicSDK.Instance.Passkeys.AuthenticatePasskeyMFA(
new MfaCreateToken { SingleUse = true });
string token = result?.MfaToken ?? result?.Jwt;
Delete a passkey
Copy
Ask AI
await DynamicSDK.Instance.Passkeys.DeletePasskey(new DeletePasskeyRequest
{
CredentialId = passkey.CredentialId,
PasskeyId = passkey.Id,
});
Complete example
Copy
Ask AI
using DynamicSDK.Core;
using UnityEngine;
using System.Collections.Generic;
public class PasskeyManager : MonoBehaviour
{
private List<UserPasskey> _passkeys = new List<UserPasskey>();
public async void RegisterNewPasskey()
{
try
{
await DynamicSDK.Instance.Passkeys.RegisterPasskey();
Debug.Log("Passkey registered successfully!");
// Refresh passkey list
await LoadPasskeys();
}
catch (System.Exception ex)
{
Debug.LogError($"Passkey registration failed: {ex.Message}");
}
}
public async void LoadPasskeys()
{
try
{
_passkeys = await DynamicSDK.Instance.Passkeys.GetPasskeys();
Debug.Log($"Found {_passkeys.Count} passkey(s):");
foreach (var pk in _passkeys)
{
Debug.Log($" ID: {pk.Id}");
Debug.Log($" Created: {pk.CreatedAt}");
}
}
catch (System.Exception ex)
{
Debug.LogError($"Failed to load passkeys: {ex.Message}");
}
}
public async void AuthenticateWithPasskey()
{
try
{
var result = await DynamicSDK.Instance.Passkeys.AuthenticatePasskeyMFA(
new MfaCreateToken { SingleUse = true });
string token = result?.MfaToken ?? result?.Jwt;
if (!string.IsNullOrEmpty(token))
{
Debug.Log("Passkey authentication successful!");
}
}
catch (System.Exception ex)
{
Debug.LogError($"Passkey authentication failed: {ex.Message}");
}
}
public async void DeletePasskey(UserPasskey passkey)
{
try
{
await DynamicSDK.Instance.Passkeys.DeletePasskey(new DeletePasskeyRequest
{
CredentialId = passkey.CredentialId,
PasskeyId = passkey.Id,
});
Debug.Log("Passkey deleted successfully!");
// Refresh passkey list
await LoadPasskeys();
}
catch (System.Exception ex)
{
Debug.LogError($"Failed to delete passkey: {ex.Message}");
}
}
}
Next steps
- MFA - Multi-factor authentication with TOTP
- Authentication - Other authentication methods