public IActionResult refreshToken([FromBody] RefreshRequest login) { try { if (HttpContext.User.Claims.ToList()[2].Value == login.refreshToken & HttpContext.Request.Headers["Authorization"][0].Split(' ')[1] == login.token) { DateTime time = DateTime.Now.AddMinutes(3); accessToken accessToken = new accessToken(); accessToken.refreshToken = GenerateRefreshToken(); var a = GenerateJSONWebToken(accessToken.refreshToken); accessToken.token = a[0].Value; accessToken.expireIn = a[1].Value; return(StatusCode((int)HttpStatusCode.OK, new { accessToken })); } else { return(StatusCode((int)HttpStatusCode.BadRequest, new { ErrorMessage = "Please enter a valid Email" })); } } catch (Exception e) { string SaveErrorLog = Data.Common.SaveErrorLog("refreshToken", e.Message); return(StatusCode((int)HttpStatusCode.InternalServerError, new { ErrorMessage = e.Message })); } }
public async Task <string> GetAuthToken([FromBody] ApiToken objApiToken) { var dict = new Dictionary <string, string>(); dict.Add("username", objApiToken.UserName); dict.Add("password", objApiToken.Password); dict.Add("applicationGUID", objApiToken.ApplicationGUID); string CurrentHostLocation = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}"; HttpResponseMessage encodedJwt = await client.PostAsync($@"{CurrentHostLocation}/api/token", new FormUrlEncodedContent(dict)); var jsonString = encodedJwt.Content.ReadAsStringAsync(); jsonString.Wait(); accessToken response = JsonConvert.DeserializeObject <accessToken>(jsonString.Result); if (response.authorized) { return($"Bearer {response.access_token}"); } else { return($"ERROR: Not Authorized"); } }
// *** TO DO // Validate the applicationGUID and the username and password private async Task GenerateToken(HttpContext context) { // Check all three values (the account being checked must be ACTIVE) var username = context.Request.Form["username"]; var password = context.Request.Form["password"]; var applicationGUID = context.Request.Form["applicationGUID"]; accessToken response = CreateToken(applicationGUID, username, password).Result; // Serialize and return the response context.Response.ContentType = "application/json"; await context.Response.WriteAsync(JsonConvert.SerializeObject(response, _serializerSettings)); }
public IActionResult login([FromBody] Login login) { IActionResult response = Unauthorized(); List <dynamic> userdetails = new List <dynamic>(); try { DataSet ds = Data.User.login(login); DataTable dt = ds.Tables[0]; dynamic user = new System.Dynamic.ExpandoObject(); if (dt.Rows.Count > 0) { user.userId = (int)dt.Rows[0]["userId"]; user.firstName = (dt.Rows[0]["firstName"] == DBNull.Value ? "" : dt.Rows[0]["firstName"].ToString()); user.lastName = (dt.Rows[0]["lastName"] == DBNull.Value ? "" : dt.Rows[0]["lastName"].ToString()); user.phoneNumber = (dt.Rows[0]["phoneNumber"] == DBNull.Value ? "" : dt.Rows[0]["phoneNumber"].ToString()); user.profileImage = (dt.Rows[0]["profileImage"] == DBNull.Value ? "" : dt.Rows[0]["profileImage"].ToString()); user.gender = (dt.Rows[0]["gender"] == DBNull.Value ? "" : dt.Rows[0]["gender"].ToString()); user.role = (dt.Rows[0]["role"] == DBNull.Value ? "" : dt.Rows[0]["role"].ToString()); user.latitude = (dt.Rows[0]["latitude"] == DBNull.Value ? "" : dt.Rows[0]["latitude"].ToString()); user.longitude = (dt.Rows[0]["longitude"] == DBNull.Value ? "" : dt.Rows[0]["longitude"].ToString()); user.country = (dt.Rows[0]["country"] == DBNull.Value ? "" : dt.Rows[0]["country"].ToString()); user.state = (dt.Rows[0]["state"] == DBNull.Value ? "" : dt.Rows[0]["state"].ToString()); user.cityName = (dt.Rows[0]["cityName"] == DBNull.Value ? "" : dt.Rows[0]["cityName"].ToString()); user.address = (dt.Rows[0]["address"] == DBNull.Value ? "" : dt.Rows[0]["address"].ToString()); //DateTime time = DateTime.Now.AddMinutes(3); accessToken accessToken = new accessToken(); accessToken.refreshToken = GenerateRefreshToken(); var a = GenerateJSONWebToken(accessToken.refreshToken); accessToken.token = a[0].Value; accessToken.expireIn = a[1].Value; return(StatusCode((int)HttpStatusCode.OK, new { user, accessToken })); } else { return(StatusCode((int)HttpStatusCode.BadRequest, new { ErrorMessage = "Invalid Username or Password" })); } } catch (Exception e) { string SaveErrorLog = Data.Common.SaveErrorLog("login", e.Message); return(StatusCode((int)HttpStatusCode.InternalServerError, new { ErrorMessage = e.Message })); } }
public async Task <accessToken> CreateToken(string applicationGUID, string username, string password) { var identity = await _options.IdentityResolver(applicationGUID, username, password); if (identity == null) { var responseFail = new accessToken { authorized = false, access_token = "", expires_in = (int)0 }; return(responseFail); } var now = DateTime.UtcNow; var claims = new Claim[] { new Claim(JwtRegisteredClaimNames.Sub, username), new Claim(JwtRegisteredClaimNames.Jti, await _options.NonceGenerator()), new Claim(JwtRegisteredClaimNames.Iat, new DateTimeOffset(now).ToUniversalTime().ToUnixTimeSeconds().ToString(), ClaimValueTypes.Integer64) }; // Create the JWT and write it to a string var jwt = new JwtSecurityToken( issuer: _options.Issuer, audience: _options.Audience, claims: claims, notBefore: now, expires: now.Add(_options.Expiration), signingCredentials: _options.SigningCredentials); var encodedJwt = new JwtSecurityTokenHandler().WriteToken(jwt); var responseSuccess = new accessToken { authorized = true, access_token = encodedJwt, expires_in = (int)_options.Expiration.TotalSeconds }; return(responseSuccess); }
_credential = new AccessTokenCredential(accessToken, accessMethod);