Table of Contents

LoginWithOneTimeCode

Methods
public static LoginOperation LoginWithOneTimeCode(string code, CancellationToken cancellationToken = default)

Login to coherence Cloud using a one-time code.

Parameters
Type Name Description
string code

One-time code acquired using GetOneTimeCode(CancellationToken) .

CancellationToken cancellationToken

Used to cancel the operation.

Returns
Type Description
LoginOperation

The status of the asynchronous login operation.

Remarks

There are two use cases for one-time codes:

  1. transfer progress from one platform to another,
  2. recover access to a lost account.

One-time codes expire after a certain time and can only be used once.

'One-Time Code Auth Enabled' must be ticked in Project Settings on your Online Dashboard for this authentication method to be usable.

Examples
// Copyright (c) coherence ApS.
// See the license file in the package root for more information.

using System.Threading.Tasks;
using Coherence.Cloud;
using UnityEngine;

class AcquireOneTimeCode : MonoBehaviour
{
    async void Start()
    {
        PlayerAccount playerAccount = await CoherenceCloud.LoginAsGuest();
        string code = await playerAccount.GetOneTimeCode();
        Debug.Log($"Login with this code on your other device: {code}.");
    }
}

class LoginWithOneTimeCode : MonoBehaviour
{
    public async Task<PlayerAccount> Login(string code)
    {
        var loginOperation = await CoherenceCloud.LoginWithOneTimeCode(code);
        if (loginOperation.HasFailed)
        {
            Debug.LogWarning($"Logging in failed. The code may have already expired.\n{loginOperation.Error}.");
            return null;
        }

        var playerAccount = loginOperation.Result;
        Debug.Log($"Logged in as: {playerAccount}.");
        return playerAccount;
    }
}