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}");
}
}
}