public async Task <IActionResult> Confirm(CheckToken data)
        {
            var     jwtHandler = new JwtSecurityTokenHandler();
            string  email      = jwtHandler.ReadJwtToken(data.Token).Subject;
            AppUser user       = await userManager.FindByEmailAsync(email);

            if (user == null)
            {
                return(NotFound());
            }

            var returnUser = mapper.Map <UserViewModel>(user);

            return(Ok(returnUser));
        }
Beispiel #2
0
        public object RemoveKeys(int id, int userId, int tokenId, string token)
        {
            var context = ConnectionService.GetContext();
            var check   = CheckToken.Check(tokenId, userId, token);

            if (check == false)
            {
                return(new { error = true, messageError = "Неправильный токен" });
            }
            var rem = context.Keys.Where(r => r.Id == id && r.UserId == userId).FirstOrDefault();

            if (rem != null)
            {
                context.Keys.Remove(rem);
                context.SaveChanges();
                return(new { error = false, userId = userId });
            }
            return(new { error = true, messageError = "Ошибка" });
        }
Beispiel #3
0
        public IActionResult RefreshToken([FromRoute] String refToken)
        {
            StudentLogin student = new StudentLogin();
            CheckToken   c       = new CheckToken();

            student = c.Check(refToken);

            if (student.refToken != null)
            {
                var claims = new[]
                {
                    new Claim(ClaimTypes.NameIdentifier, "1"),
                    new Claim(ClaimTypes.Name, "jan123"),
                    new Claim(ClaimTypes.Role, "admin"),
                    new Claim(ClaimTypes.Role, "student")
                };

                var key   = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["SecretKey"]));
                var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

                var token = new JwtSecurityToken
                            (
                    issuer: "Gakko",
                    audience: "Students",
                    claims: claims,
                    expires: DateTime.Now.AddMinutes(10),
                    signingCredentials: creds
                            );
                SaveToken s           = new SaveToken();
                String    newRefToken = Guid.NewGuid().ToString();
                s.Save(student.IndexNumber, newRefToken);

                return(Ok(new
                {
                    token = new JwtSecurityTokenHandler().WriteToken(token),
                    newRefToken
                }
                          ));
            }
            return(StatusCode(401, "Wrong token"));
        }
Beispiel #4
0
        public object AddKeys(int userId, string key, string token, int tokenId)
        {
            var context = ConnectionService.GetContext();
            var check   = CheckToken.Check(tokenId, userId, token);

            if (check == false)
            {
                return(new { error = true, messageError = "Неправильный токен" });
            }
            var fKey = context.Keys.Where(fk => fk.UserId == userId && fk.Key == key).FirstOrDefault();

            if (fKey == null)
            {
                KeyStorage keyStorage = new KeyStorage()
                {
                    UserId = userId,
                    Key    = key
                };
                context.Keys.Add(keyStorage);
                context.SaveChanges();
                return(new { error = false, userId = userId, key = key });
            }
            return(new  { error = true, messageError = "Ошибка" });
        }