初始化CRICS
This commit is contained in:
135
CommonEntity/JWTData.cs
Normal file
135
CommonEntity/JWTData.cs
Normal file
@@ -0,0 +1,135 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Newtonsoft.Json;
|
||||
using Jose;
|
||||
using Common;
|
||||
|
||||
namespace CommonEntity
|
||||
{
|
||||
public class JWTData
|
||||
{
|
||||
/// <summary>
|
||||
/// 主题
|
||||
/// </summary>
|
||||
public string sub { get; set; }
|
||||
/// <summary>
|
||||
/// 发行人
|
||||
/// </summary>
|
||||
public string iss { get; set; }
|
||||
/// <summary>
|
||||
/// 到期时间
|
||||
/// </summary>
|
||||
public long exp { get; set; }
|
||||
/// <summary>
|
||||
/// 用户
|
||||
/// </summary>
|
||||
public string aud { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 在此之前不可用
|
||||
/// </summary>
|
||||
public string nbf { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 发布时间
|
||||
/// </summary>
|
||||
public string iat { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///用于标识该JWT
|
||||
/// </summary>
|
||||
public string jti { get; set; }
|
||||
|
||||
public string username { get; set; }
|
||||
}
|
||||
public class ChuangWeiUser
|
||||
{
|
||||
public string UserName { get; set; }
|
||||
public string Version { get; set; }
|
||||
}
|
||||
public class ReturnInfo
|
||||
{
|
||||
public int code { get; set; }
|
||||
public string msg { get; set; }
|
||||
public object data { get; set; }
|
||||
}
|
||||
public class TokenData
|
||||
{
|
||||
public string accessToken { get; set; }
|
||||
public string refreshToken { get; set; }
|
||||
}
|
||||
|
||||
public class SignKeyCommon
|
||||
{
|
||||
public readonly static string ChuangWei_JWTKey = "#这x是98一个uv永远$不可0能到的a一个数据*";
|
||||
|
||||
public static ReturnInfo GetTokenData(string username)
|
||||
{
|
||||
DateTime dt = DateTime.Now.AddMonths(6);
|
||||
string ti = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
|
||||
long l = Tools.GetCurrentTimeStamp(dt);
|
||||
CommonEntity.JWTData j = new CommonEntity.JWTData();
|
||||
j.sub = "创维电视登录";
|
||||
j.exp = l;
|
||||
j.aud = "创维电视accesstoken";
|
||||
j.nbf = DateTime.Now.AddMinutes(3).ToString("yyyy-MM-dd HH:mm:ss.fff");
|
||||
j.iat = ti;
|
||||
j.jti = Guid.NewGuid().ToString("N");
|
||||
j.username = username;
|
||||
|
||||
var secretKey = Encoding.UTF8.GetBytes(SignKeyCommon.ChuangWei_JWTKey);
|
||||
string token = Jose.JWT.Encode(j, secretKey, JwsAlgorithm.HS256);
|
||||
|
||||
j.aud = "创维电视refresh_token";
|
||||
j.jti = Guid.NewGuid().ToString("N");
|
||||
string refresh_token = Jose.JWT.Encode(j, secretKey, JwsAlgorithm.HS256);
|
||||
|
||||
ReturnInfo r = new ReturnInfo();
|
||||
r.code = 200;
|
||||
r.msg = "登录成功";
|
||||
r.data = new TokenData()
|
||||
{
|
||||
accessToken = token,
|
||||
refreshToken = refresh_token
|
||||
};
|
||||
return r;
|
||||
}
|
||||
|
||||
public static bool TokenValidate(string retoken, out JWTData data, out int code, out string msg)
|
||||
{
|
||||
data = new JWTData();
|
||||
bool isv = false;
|
||||
code = 200;
|
||||
msg = "sucess";
|
||||
|
||||
byte[] secretKey = Encoding.UTF8.GetBytes(SignKeyCommon.ChuangWei_JWTKey);
|
||||
JWTData MMU = Jose.JWT.Decode<JWTData>(retoken, secretKey, JwsAlgorithm.HS256);
|
||||
if (MMU != null)
|
||||
{
|
||||
DateTime dt = Tools.GetCurrentDateTime(MMU.exp);
|
||||
string username = MMU.username;
|
||||
if (dt > DateTime.Now)
|
||||
{
|
||||
isv = true;
|
||||
data = MMU;
|
||||
}
|
||||
else
|
||||
{
|
||||
isv = false;
|
||||
code = 10042;
|
||||
msg = "Token值已经过期";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
isv = false;
|
||||
code = 10021;
|
||||
msg = "非法token";
|
||||
}
|
||||
|
||||
return isv;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user