/// <summary> /// 申请操作token /// </summary> /// <param name="resourceDescriptor">欲操作资源描述</param> /// <param name="regToken">登记客户端token</param> /// <returns></returns> public async Task <string> RegisterAsync(ResourceDescriptor resourceDescriptor, string regToken) { ResourceGrantInfo resourceGrantInfo = new ResourceGrantInfo { Token = Guid.NewGuid().ToString("N"), CreateDt = DateTime.Now, ExpireDt = resourceDescriptor.GetExpireDt(), ResourceDescriptor = resourceDescriptor.ToString(), UseTimes = 0 }; _dbContext.Set <ResourceGrantInfo>().Add(resourceGrantInfo); await _dbContext.SaveChangesAsync(); return(resourceGrantInfo.Token); }
/// <summary> /// 申请操作token /// </summary> /// <param name="resourceDescriptor">欲操作资源描述</param> /// <param name="regToken">登记客户端token</param> /// <returns></returns> public async Task <string> RegisterAsync(ResourceDescriptor resourceDescriptor, string regToken) { var claims = new Claim[] { new Claim("stm/auth/token", resourceDescriptor.ToString()) }; var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_secretKey)); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); var jwttoken = new JwtSecurityToken( null, null, claims, DateTime.Now, resourceDescriptor.GetExpireDt(), creds ); var token = new JwtSecurityTokenHandler().WriteToken(jwttoken); return(token); }