Files
simapi-net/Helpers/YYAuth.cs
T

63 lines
1.6 KiB
C#
Raw Normal View History

2020-02-04 16:51:15 +08:00
using System;
using System.Text.Json;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Caching.Distributed;
using YYApi.Communications;
namespace YYApi.Helpers
{
/// <summary>
/// 认证助手
/// </summary>
public class YYAuth
{
private IDistributedCache Cache { get; }
public YYAuth(IDistributedCache cache)
{
Cache = cache;
}
/// <summary>
/// 产生一个Token记录并返回Token
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public string Login(int id, string type = "user", string token = null)
2020-02-18 08:07:51 +08:00
{
return Login(id, new[] { type }, token);
2020-02-18 08:07:51 +08:00
}
/// <summary>
/// 产生一个Token并记录用户ID角色[多角色]
2020-02-18 08:07:51 +08:00
/// </summary>
/// <param name="id"></param>
/// <param name="type"></param>
/// <returns></returns>
public string Login(int id, string[] type, string uuid = null)
2020-02-04 16:51:15 +08:00
{
if (uuid == null)
{
uuid = Guid.NewGuid().ToString();
}
2020-02-04 16:51:15 +08:00
var loginItem = new YYLoginItem
{
Id = id,
Type = type
};
Cache.SetString(uuid, JsonSerializer.Serialize(loginItem));
return uuid;
}
/// <summary>
/// 退出登陆
/// </summary>
/// <param name="uuid">登陆标识</param>
public void Logout(string uuid)
{
Cache.Remove(uuid);
}
2020-02-04 16:51:15 +08:00
}
}