public object GetTencentCosFederationToken([FromServices] ITencentCosProvider tencentCosProvider) { string key = "HaoHaoPlay_Back_FederationToken"; GetFederationTokenResponse result; var tokenCache = RedisHelper.Get(key); if (tokenCache.IsNullOrWhiteSpace()) { result = tencentCosProvider.GetFederationToken(); RedisHelper.Set(key, JsonConvert.SerializeObject(result), 7200); } else { result = JsonConvert.DeserializeObject <GetFederationTokenResponse>(tokenCache); } return(new { result.Credentials, result.ExpiredTime, StartTime = H_Util.GetUnixTimestamp(DateTime.Now), result.RequestId, }); }
public object GetUploadAvatarInfo([FromServices] IConfiguration config, [FromServices] ICurrentUser currentUser) { return(new { Bucket = config["TencentCos:Bucket"], Key = config["TencentCos:AvatarKey"] + $"/{currentUser.Id}_{H_Util.GetUnixTimestamp()}", Region = config["TencentCos:Region"] }); }
/// <summary> /// 生成Jwt /// </summary> /// <param name="timeNow"></param> /// <param name="expireTime"></param> /// <param name="jti"></param> /// <param name="user"></param> /// <returns></returns> private string CreateJwt(DateTime timeNow, DateTime expireTime, Guid jti, SysUser user) { var claims = new Claim[] { new Claim(JwtRegisteredClaimNames.Sub, _appSettings.Jwt.Subject), //主题 new Claim(JwtRegisteredClaimNames.Jti, jti.ToString()), //针对当前 token 的唯一标识 jwt的唯一身份标识,避免重复 new Claim(JwtRegisteredClaimNames.Sid, user.Id.ToString()), new Claim(JwtRegisteredClaimNames.Iat, H_Util.GetUnixTimestamp(timeNow).ToString(), ClaimValueTypes.Integer64), //token 创建时间 }; var secretKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(_appSettings.Jwt.SecretKey)); var jwt = new JwtSecurityTokenHandler().WriteToken(new JwtSecurityToken( issuer: _appSettings.Jwt.Issuer, audience: _appSettings.Jwt.Audience, claims: claims, notBefore: timeNow, //生效时间 expires: expireTime, //过期时间 signingCredentials: new SigningCredentials(secretKey, SecurityAlgorithms.HmacSha256) )); return(jwt); }