Files
Fishing2Server/Hotfix/Gate/System/JWT/GateJWTHelper.cs
2026-01-18 16:37:46 +08:00

36 lines
1.3 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using System.IdentityModel.Tokens.Jwt;
using Fantasy;
namespace NB.Gate;
public static class GateJWTHelper
{
/// <summary>
/// 验证令牌是否合法
/// </summary>
/// <param name="scene"></param>
/// <param name="token">ToKen</param>
/// <param name="accountId">如果验证成功会返回正常的AccountId</param>
/// <returns>如果是True表示验证成功False表示验证失败</returns>
public static bool ValidateToken(Scene scene, string token, out long accountId)
{
if (!ValidateToken(scene, token, out JwtPayload payload))
{
// 如果令牌验证失败表示当前令牌不合法、那就返回为false让上层处理。
accountId = 0;
return false;
}
// 如果不等于当前Scene的ConfigId的话把就表示该连接不应该连接到当前的Gate里。
// 所以理应把当前连接关闭掉。
var sceneId = Convert.ToInt64(payload["SceneId"]);
accountId = Convert.ToInt64(payload["aId"]);
return sceneId == scene.SceneConfigId;
}
private static bool ValidateToken(Scene scene, string token, out JwtPayload payload)
{
return scene.GetComponent<GateJWTComponent>().ValidateToken(token, out payload);
}
}