Exemple #1
0
        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 }));
            }
        }
Exemple #2
0
        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");
            }
        }
Exemple #3
0
        // *** 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));
        }
Exemple #4
0
        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 }));
            }
        }
Exemple #5
0
        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);
        }
Exemple #6
0
 _credential = new AccessTokenCredential(accessToken, accessMethod);