最终用户身份
了解 SDK 如何为长期记忆范围识别用户,以及如何实现自定义的基于身份验证的身份提供程序。
最后更新于
这有帮助吗?
这有帮助吗?
using Convai.Domain.Identity;
public class AccountIdentityProvider : IEndUserIdentityProvider
{
private readonly string _accountId;
public AccountIdentityProvider(string accountId)
{
_accountId = accountId;
}
public string GetEndUserId()
{
return _accountId;
}
}using System.Collections.Generic;
using Convai.Domain.Identity;
public class AccountMetadataProvider : IEndUserMetadataProvider
{
private readonly string _displayName;
private readonly string _department;
public AccountMetadataProvider(string displayName, string department)
{
_displayName = displayName;
_department = department;
}
public IReadOnlyDictionary<string, object> GetEndUserMetadata()
{
return new Dictionary<string, object>
{
{ "name", _displayName },
{ "department", _department }
};
}
}using Convai.Runtime.Components;
using UnityEngine;
public class IdentityRegistrar : MonoBehaviour
{
[SerializeField] private ConvaiManager _convaiManager;
private void Awake()
{
// 在 ConvaiRoomManager.Start() 之前调用——适用于自动连接角色
string accountId = AuthService.CurrentUser.AccountId;
string displayName = AuthService.CurrentUser.DisplayName;
string department = AuthService.CurrentUser.Department;
_convaiManager.SetEndUserIdentityProvider(new AccountIdentityProvider(accountId));
_convaiManager.SetEndUserMetadataProvider(new AccountMetadataProvider(displayName, department));
}
}