public JwtTokenModel GetToken() { try { #region 第一版 //var jwtConfig = AuthConfigData.AuthConfig.Jwt; ////定义发行人issuer //string iss = jwtConfig.Issuer; ////定义受众人audience //string aud = jwtConfig.Audience; ////定义许多种的声明Claim,信息存储部分,Claims的实体一般包含用户和一些元数据 //IEnumerable<Claim> claims = new Claim[] //{ //new Claim(JwtClaimTypes.Id,"1"), //new Claim(JwtClaimTypes.Name,"jelly"), //}; ////notBefore 生效时间 //// long nbf =new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds(); //var nbf = DateTime.UtcNow; ////expires //过期时间 //// long Exp = new DateTimeOffset(DateTime.Now.AddSeconds(1000)).ToUnixTimeSeconds(); //var Exp = DateTime.UtcNow.AddSeconds(1000); ////signingCredentials 签名凭证 //string sign = jwtConfig.Key; //SecurityKey 的长度必须 大于等于 16个字符 //var secret = Encoding.UTF8.GetBytes(sign); //var key = new SymmetricSecurityKey(secret); //var signcreds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); //var jwt = new JwtSecurityToken(issuer: iss, audience: aud, claims: claims, notBefore: nbf, expires: Exp, signingCredentials: signcreds); //var JwtHander = new JwtSecurityTokenHandler(); //var token = JwtHander.WriteToken(jwt); //return Ok(new //{ // access_token = token, // token_type = "Bearer", //}); #endregion IEnumerable <Claim> claims = new Claim[] { new Claim(ClaimsName.AccountId, "1"), new Claim(ClaimsName.AccountName, "jelly"), new Claim(ClaimsName.AccountType, AccountTypeEnum.USER.ToString()), }; var jwtmodel = _loginHandler.Hand(claims, Guid.NewGuid().ToString(), "jelly"); return(jwtmodel); } catch (Exception ex) { throw; } }
/// <summary> /// 登录处理 /// </summary> private IResultModel LoginHandle(ResultModel <LoginResultModel> result) { if (result.Successful) { var account = result.Data.Account; var loginInfo = result.Data.AuthInfo; var claims = new List <Claim> { new Claim(ClaimsName.AccountId, account.Id.ToString()), new Claim(ClaimsName.AccountName, account.Name), new Claim(ClaimsName.AccountType, account.Type.ToInt().ToString()), new Claim(ClaimsName.Platform, loginInfo.Platform.ToInt().ToString()), new Claim(ClaimsName.LoginTime, loginInfo.LoginTime.ToString()) }; //自定义扩展Claims var extendClaims = _claimsExtendProvider.GetExtendClaims(account.Id); if (extendClaims != null && extendClaims.Any()) { claims.AddRange(extendClaims); } return(_loginHandler.Hand(claims, loginInfo.RefreshToken)); } return(ResultModel.Failed(result.Msg)); }
/// <summary> /// 登录处理 /// </summary> private IResultModel LoginHandle(LoginResultModel result) { if (result.Success) { var claims = new List <Claim> { new Claim(ClaimsName.TenantId, result.TenantId != null ? result.TenantId.ToString() : ""), new Claim(ClaimsName.AccountId, result.AccountId.ToString()), new Claim(ClaimsName.AccountName, result.Name), new Claim(ClaimsName.AccountType, result.AccountType.ToInt().ToString()), new Claim(ClaimsName.Platform, result.Platform.ToInt().ToString()), new Claim(ClaimsName.LoginTime, result.LoginTime.ToTimestamp().ToString()) }; //自定义扩展Claims var extendClaims = _claimsExtendProvider.GetExtendClaims(result.AccountId); if (extendClaims != null && extendClaims.Any()) { claims.AddRange(extendClaims); } return(_loginHandler.Hand(claims, result.RefreshToken)); } return(ResultModel.Failed(result.Error)); }
public async Task <IResultModel> Login([FromBody] LoginModel model) { var result = await _service.Login(model); if (result.Successful) { var account = result.Data.Account; var loginInfo = result.Data.AuthInfo; var claims = new[] { new Claim(ClaimsName.AccountId, account.Id.ToString()), new Claim(ClaimsName.AccountName, account.Name), new Claim(ClaimsName.AccountType, model.AccountType.ToInt().ToString()), new Claim(ClaimsName.Platform, model.Platform.ToInt().ToString()), new Claim(ClaimsName.LoginTime, loginInfo.LoginTime.ToString()) }; return(_loginHandler.Hand(claims, loginInfo.RefreshToken)); } return(ResultModel.Failed(result.Msg)); }
public async Task <IResultModel> Login([FromBody] LoginModel model) { var result = await _service.Login(model); if (result.Successful) { var account = result.Data; var claims = new[] { new Claim("id", account.Id.ToString()), new Claim("pf", model.Platform.ToInt().ToString()), }; return(_loginHandler.Hand(claims)); } return(ResultModel.Failed(result.Msg)); }
public async Task <IResultModel> Login([FromBody] LoginModel model) { model.IP = _loginInfo.IPv4; var result = await _service.Login(model); if (result.Successful) { var account = result.Data; var claims = new[] { new Claim(ClaimsName.AccountId, account.Id.ToString()), new Claim(ClaimsName.AccountType, model.AccountType.ToInt().ToString()), new Claim(ClaimsName.Platform, model.Platform.ToInt().ToString()) }; return(_loginHandler.Hand(claims)); } return(ResultModel.Failed(result.Msg)); }