public static TokenGeneratedDTO GenerateToken(GetGenerateTokenDTO tokenDTO) { TokenGeneratedDTO _tokendata = new TokenGeneratedDTO(); var privateKey = tokenDTO.PrivateKey; if (privateKey != "") { try { RSACryptoServiceProvider rsaService = new RSACryptoServiceProvider(); rsaService.FromXmlString(privateKey); var ExpiryDate = DateTime.Now.AddMinutes(tokenDTO.TokenExpiryMinute); var refreshToken = Guid.NewGuid().ToString(); var encryptedRefreshToken = Convert.ToBase64String(Encoding.UTF8.GetBytes(refreshToken)); //var dec = Encoding.UTF8.GetString(Convert.FromBase64String(enc)); var authClaims = new[] { new Claim("UserID", tokenDTO.UserId.ToString()), new Claim("UserName", tokenDTO.UserName) }; var jwttoken = new JwtSecurityToken( issuer: tokenDTO.Issuer, audience: tokenDTO.Audience, expires: ExpiryDate, claims: authClaims, signingCredentials: new SigningCredentials(new RsaSecurityKey(rsaService), SecurityAlgorithms.RsaSha256) ); _tokendata.AccessToken = new JwtSecurityTokenHandler().WriteToken(jwttoken); _tokendata.RefreshToken = encryptedRefreshToken; _tokendata.TokenExpiresMinute = tokenDTO.TokenExpiryMinute; _tokendata.RefreshTokenExpiresMinute = tokenDTO.RefreshTokenExpiryMinute; _tokendata.ErrorStatus = ""; _tokendata.UserId = tokenDTO.UserId; //var uinfo = LoginUserInfo(_userId, _coid); //if (uinfo != null) //{ // _tokendata.UserName = uinfo.UserName; // _tokendata.Designation = uinfo.Designation; //} } catch (Exception e) { _tokendata.ErrorStatus = "Error occur while generate token." + e.Message; } } else { _tokendata.ErrorStatus = "Private Key can't be empty."; } return(_tokendata); }
public LoginResponse Login(LoginRequest _request) { LoginResponse response = new LoginResponse(); string hashedPassword = StringHelper.GenerateHash(_request.Password); var user = (from u in db_Evoucher.TblUsers join up in db_Evoucher.TblUserPassword on u.UserId equals up.UserId where u.LoginId == _request.LoginId && up.Password1 == hashedPassword select u).FirstOrDefault(); if (user != null) { GetGenerateTokenDTO getGenerateToken = new GetGenerateTokenDTO { Audience = configuration["Audience"], Issuer = configuration["Issuer"], PrivateKey = configuration["PrivateKey"], TokenExpiryMinute = Int32.Parse(configuration["TokenExpiryMinute"]), RefreshTokenExpiryMinute = Int32.Parse(configuration["RefreshTokenExpiryMinute"]), UserId = user.UserId, UserName = user.DisplayName }; TokenGeneratedDTO generatedToken = JWTHelper.GenerateToken(getGenerateToken); if (String.IsNullOrEmpty(generatedToken.ErrorStatus)) { response.AccessToken = generatedToken.AccessToken; response.AccessTokenExpireMinutes = generatedToken.TokenExpiresMinute; response.RefreshToken = generatedToken.RefreshToken; response.RefreshTokenExpireMinutes = Int32.Parse(configuration["RefreshTokenExpiryMinute"]); response.UserId = user.UserId; } else { response.ErrorStatus = generatedToken.ErrorStatus; } } else { response.ErrorStatus = "Invalid user name or password!"; } db_Evoucher.SaveChanges(); return(response); }
public EstoreAccessTokenResponse GetAccessToken(EstoreAccessTokenRequest _request) { EstoreAccessTokenResponse response = new EstoreAccessTokenResponse(); if (configuration["EStoreClientID"] == _request.ClientID) { GetGenerateTokenDTO generateTokenDto = new GetGenerateTokenDTO { Audience = configuration["Audience"], Issuer = configuration["Issuer"], PrivateKey = configuration["PrivateKey"], TokenExpiryMinute = Int32.Parse(configuration["TokenExpiryMinute"]), RefreshTokenExpiryMinute = Int32.Parse(configuration["RefreshTokenExpiryMinute"]), UserId = 0, UserName = "******" }; TokenGeneratedDTO generatedToken = JWTHelper.GenerateToken(generateTokenDto); if (generatedToken != null && string.IsNullOrEmpty(generatedToken.ErrorStatus)) { response.AccessToken = generatedToken.AccessToken; response.AccessTokenExpireMinutes = generatedToken.TokenExpiresMinute; response.RefreshToken = generatedToken.RefreshToken; response.RefreshTokenExpireMinutes = generatedToken.TokenExpiresMinute; } else { response.StatusCode = 401; response.ErrorType = "Unauthorized Request"; response.ErrorMessage = "Unable to generate Token."; } } else { response.StatusCode = 401; response.ErrorType = "Unauthorized Request"; response.ErrorMessage = "Invalid Client ID."; } return(response); }