2020-02-04 16:51:15 +08:00
|
|
|
using System;
|
|
|
|
|
using System.Text.Json;
|
|
|
|
|
using Microsoft.Extensions.Caching.Distributed;
|
2020-08-05 15:29:56 +08:00
|
|
|
using SimApi.Communications;
|
2020-02-04 16:51:15 +08:00
|
|
|
|
2024-03-23 07:29:43 +08:00
|
|
|
namespace SimApi.Helpers;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 认证助手
|
|
|
|
|
/// </summary>
|
|
|
|
|
public class SimApiAuth(IDistributedCache cache)
|
2020-02-04 16:51:15 +08:00
|
|
|
{
|
|
|
|
|
/// <summary>
|
2024-08-19 03:39:35 +08:00
|
|
|
/// 登录信息
|
2020-02-04 16:51:15 +08:00
|
|
|
/// </summary>
|
2024-08-19 03:39:35 +08:00
|
|
|
/// <param name="loginItem"></param>
|
2024-03-24 17:31:22 +08:00
|
|
|
/// <param name="token"></param>
|
2024-03-23 07:29:43 +08:00
|
|
|
/// <returns></returns>
|
2024-08-19 03:39:35 +08:00
|
|
|
public string Login(SimApiLoginItem loginItem, string? token = null)
|
2020-02-04 16:51:15 +08:00
|
|
|
{
|
2024-08-19 03:39:35 +08:00
|
|
|
token ??= Guid.NewGuid().ToString();
|
|
|
|
|
cache.SetString(token, JsonSerializer.Serialize(loginItem));
|
|
|
|
|
return token;
|
2024-06-27 04:38:04 +08:00
|
|
|
}
|
|
|
|
|
|
2025-10-25 17:12:39 +08:00
|
|
|
/// <summary>
|
|
|
|
|
/// 更新登陆信息
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="loginItem"></param>
|
|
|
|
|
/// <param name="token"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public string Update(SimApiLoginItem loginItem, string token)
|
|
|
|
|
{
|
|
|
|
|
cache.SetString(token, JsonSerializer.Serialize(loginItem));
|
|
|
|
|
return token;
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-24 17:31:22 +08:00
|
|
|
/// <summary>
|
|
|
|
|
/// 获取登陆信息
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="token"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public SimApiLoginItem? GetLogin(string token)
|
|
|
|
|
{
|
|
|
|
|
var login = cache.GetString(token);
|
2025-05-14 06:26:10 +08:00
|
|
|
return login != null ? JsonSerializer.Deserialize<SimApiLoginItem>(login) : null;
|
2024-03-24 17:31:22 +08:00
|
|
|
}
|
|
|
|
|
|
2024-03-23 07:29:43 +08:00
|
|
|
/// <summary>
|
|
|
|
|
/// 退出登陆
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="uuid">登陆标识</param>
|
|
|
|
|
public void Logout(string uuid)
|
|
|
|
|
{
|
|
|
|
|
if (!string.IsNullOrEmpty(uuid))
|
2020-02-18 08:07:51 +08:00
|
|
|
{
|
2024-03-23 07:29:43 +08:00
|
|
|
cache.Remove(uuid);
|
2020-06-28 06:28:51 +08:00
|
|
|
}
|
2020-02-04 16:51:15 +08:00
|
|
|
}
|
2023-03-28 06:33:48 +08:00
|
|
|
}
|