Exemplo n.º 1
0
        public string Generate(IEnumerable <Claim> claims)
        {
            var credentials = new SigningCredentials(options.GetSecurityKey(), SecurityAlgorithms.HmacSha256);
            var expiry      = DateTime.Now.Add(options.GetExpiry());
            var token       = new JwtSecurityToken(
                options.Issuer,
                options.Issuer,
                claims,
                expires: expiry,
                signingCredentials: credentials
                );

            return(tokenHandler.WriteToken(token));
        }
Exemplo n.º 2
0
        public async Task<IActionResult> Login([FromBody] LoginRequest model)
        {
            User user = await userManager.FindByNameAsync(model.UserName);
            if (user != null)
            {
                if (await userManager.CheckPasswordAsync(user, model.Password))
                {
                    DateTime now = DateTime.Now;
                    if (user.LastSignedAt == null || user.LastSignedAt < now)
                    {
                        user.LastSignedAt = now;
                        await userManager.UpdateAsync(user);
                    }

                    var claims = new[]
                    {
                        new Claim(ClaimTypes.Name, user.UserName),
                        new Claim(ClaimTypes.NameIdentifier, user.Id)
                    };

                    var credentials = new SigningCredentials(configuration.GetSecurityKey(), SecurityAlgorithms.HmacSha256);
                    var expiry = DateTime.Now.Add(configuration.GetExpiry());

                    var token = new JwtSecurityToken(
                        configuration.Issuer,
                        configuration.Issuer,
                        claims,
                        expires: expiry,
                        signingCredentials: credentials
                    );

                    var response = new LoginResponse()
                    {
                        Token = tokenHandler.WriteToken(token)
                    };

                    return Content(json.Serialize(response), "text/json");
                }
            }

            return BadRequest();
        }
Exemplo n.º 3
0
        private IActionResult CreateJwtToken(User user, bool isReadOnly = false)
        {
            var claims = new List <Claim>()
            {
                new Claim(ClaimTypes.Name, user.UserName),
                new Claim(ClaimTypes.NameIdentifier, user.Id)
            };

            claims.IsReadOnly(isReadOnly);

            var credentials = new SigningCredentials(jwtOptions.GetSecurityKey(), SecurityAlgorithms.HmacSha256);
            var expiry      = DateTime.Now.Add(jwtOptions.GetExpiry());

            var token = new JwtSecurityToken(
                jwtOptions.Issuer,
                jwtOptions.Issuer,
                claims,
                expires: expiry,
                signingCredentials: credentials
                );

            return(Ok(new LoginResponse(tokenHandler.WriteToken(token))));
        }
Exemplo n.º 4
0
        public async Task <IActionResult> Login([FromBody] LoginRequest model)
        {
            ApplicationUser user = await userManager.FindByNameAsync(model.UserName);

            if (user != null)
            {
                if (await userManager.CheckPasswordAsync(user, model.Password))
                {
                    var claims = new[]
                    {
                        new Claim(ClaimTypes.Name, user.UserName),
                        new Claim(ClaimTypes.NameIdentifier, user.Id)
                    };

                    var credentials = new SigningCredentials(configuration.GetSecurityKey(), SecurityAlgorithms.HmacSha256);
                    var expiry      = DateTime.Now.Add(configuration.GetExpiry());

                    var token = new JwtSecurityToken(
                        configuration.Issuer,
                        configuration.Issuer,
                        claims,
                        expires: expiry,
                        signingCredentials: credentials
                        );

                    var response = new LoginResponse()
                    {
                        Token = tokenHandler.WriteToken(token)
                    };

                    return(Ok(response));
                }
            }

            return(BadRequest());
        }