Ejemplo n.º 1
0
        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,
            });
        }
Ejemplo n.º 2
0
 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"]
     });
 }
Ejemplo n.º 3
0
        /// <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);
        }