Skip to content

User Session Management

Here's a complete example of managing sessions in Unity:

using UnityEngine;
using Openfort.OpenfortSDK;
using Openfort.OpenfortSDK.Model;
 
public class SessionManager : MonoBehaviour 
{
    private OpenfortSDK openfort;
    
    private async void Start()
    {
        openfort = await OpenfortSDK.Init("YOUR_OPENFORT_PUBLISHABLE_KEY");
    }
 
    // Get the current access token
    public async Task<string> GetAccessToken()
    {
        try 
        {
            string accessToken = await openfort.GetAccessToken();
            return accessToken;
        }
        catch (Exception e)
        {
            Debug.LogError(quot;Error getting access token: {e.Message}");
            return null;
        }
    }
 
    // Using the access token for API requests
    public async Task MakeAuthenticatedRequest(string endpoint)
    {
        try 
        {
            string accessToken = await GetAccessToken();
            
            // Example using UnityWebRequest
            using (UnityWebRequest request = UnityWebRequest.Get(endpoint))
            {
                request.SetRequestHeader("Authorization", quot;Bearer {accessToken}");
                await request.SendWebRequest();
                
                if (request.result == UnityWebRequest.Result.Success)
                {
                    string response = request.downloadHandler.text;
                    // Handle response
                }
            }
        }
        catch (Exception e)
        {
            Debug.LogError(quot;API request failed: {e.Message}");
        }
    }
 
    // Logout functionality
    public async Task LogoutUser()
    {
        try 
        {
            await openfort.auth.logout();
            Debug.Log("User logged out successfully");
            
            // Additional cleanup if needed
            // For example, return to login screen
            SceneManager.LoadScene("LoginScene");
        }
        catch (Exception e)
        {
            Debug.LogError(quot;Logout error: {e.Message}");
        }
    }
}