Scripts/Runtime/WitAuthUtility.cs (90 lines of code) (raw):
/*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the license found in the
* LICENSE file in the root directory of this source tree.
*/
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Facebook.WitAi.Data.Configuration;
using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;
#endif
namespace Facebook.WitAi
{
public class WitAuthUtility
{
private static string serverToken;
public static ITokenValidationProvider tokenValidator = new DefaultTokenValidatorProvider();
public static bool IsServerTokenValid()
{
return tokenValidator.IsServerTokenValid(ServerToken);
}
public static bool IsServerTokenValid(string token)
{
return tokenValidator.IsServerTokenValid(token);
}
public static string GetAppServerToken(WitConfiguration configuration,
string defaultValue = "")
{
return GetAppServerToken(configuration?.application?.id, defaultValue);
}
public static string GetAppServerToken(string appId, string defaultServerToken = "")
{
#if UNITY_EDITOR
return WitSettingsUtility.GetServerToken(appId, defaultServerToken);
#else
return "";
#endif
}
public static string GetAppId(string serverToken, string defaultAppID = "")
{
#if UNITY_EDITOR
return WitSettingsUtility.GetServerTokenAppID(serverToken, defaultAppID);
#else
return "";
#endif
}
public static void SetAppServerToken(string appId, string token)
{
#if UNITY_EDITOR
WitSettingsUtility.SetServerToken(appId, token);
#endif
}
public const string SERVER_TOKEN_ID = "SharedServerToken";
public static string ServerToken
{
#if UNITY_EDITOR
get
{
if (null == serverToken)
{
serverToken = WitSettingsUtility.GetServerToken(SERVER_TOKEN_ID);
}
return serverToken;
}
set
{
serverToken = value;
WitSettingsUtility.SetServerToken(SERVER_TOKEN_ID, serverToken);
}
#else
get => "";
#endif
}
public class DefaultTokenValidatorProvider : ITokenValidationProvider
{
public bool IsTokenValid(string appId, string token)
{
return IsServerTokenValid(token);
}
public bool IsServerTokenValid(string serverToken)
{
return null != serverToken && serverToken.Length == 32;
}
}
public interface ITokenValidationProvider
{
bool IsTokenValid(string appId, string token);
bool IsServerTokenValid(string serverToken);
}
}
}