Ejemplo n.º 1
0
        public IActionResult Get()
        {
            if (!User.Identity.IsAuthenticated)
            {
                return(Unauthorized());
            }
            var readerId = int.Parse(User.Claims.FirstOrDefault(c => c.Type == "Id")?.Value ??
                                     throw new InvalidOperationException());
            var currentUser = new Reader
            {
                Readerid  = readerId,
                Email     = User.Claims.FirstOrDefault(c => c.Type == "Email")?.Value,
                Firstname = User.Claims.FirstOrDefault(c => c.Type == "FirstName")?.Value,
                Lastname  = User.Claims.FirstOrDefault(c => c.Type == "LastName")?.Value,
                Address   = User.Claims.FirstOrDefault(c => c.Type == "Address")?.Value,
                Zipcode   = User.Claims.FirstOrDefault(c => c.Type == "Zipcode")?.Value,
                Borrows   = _repository.GetBorrowed(readerId)
            };

            return(Ok(currentUser));
        }
Ejemplo n.º 2
0
        public string GenerateToken(Reader reader)
        {
            var claims = new[]
            {
                new Claim(JwtRegisteredClaimNames.Sub, _configuration["Jwt:Subject"]),
                new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
                new Claim(JwtRegisteredClaimNames.Iat, DateTime.UtcNow.ToString(CultureInfo.InvariantCulture)),
                new Claim("Id", reader.Readerid.ToString()),
                new Claim("Email", reader.Email),
                new Claim("FirstName", reader.Firstname),
                new Claim("LastName", reader.Lastname),
                new Claim("Address", reader.Address),
                new Claim("Zipcode", reader.Zipcode),
                new Claim("Rtype", reader.Rtype),
            };
            var key    = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["Jwt:Key"]));
            var signIn = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
            var token  = new JwtSecurityToken(_configuration["Jwt:Issuer"], _configuration["Jwt:Audience"], claims, expires: DateTime.Now.AddHours(3), signingCredentials: signIn);

            return(new JwtSecurityTokenHandler().WriteToken(token));
        }