예제 #1
0
        public async Task <IActionResult> Register(UserModel user)
        {
            if (userModelService.GetUserByName(user.Name) != null)
            {
                ModelState.AddModelError("name", "Пользователь с таким именем уже существует!");
            }

            if (ModelState.IsValid)
            {
                string password = user.Password;
                await userModelService.CreateUser(user);

                var identity = GetIdentity(user.Name, password, out user);

                AddJWT(identity.Claims);
                return(Json(new SuccessResponse(user.Only("Id", "Name"))));
            }

            return(BadRequest(new ErrorResponse(modelStateSerializer.Serialize(ModelState))));
        }
예제 #2
0
        public Task Invoke(HttpContext httpContext)
        {
            string token = httpContext.Request.Cookies["token"];

            if (token != null && token.StartsWith("Bearer "))
            {
                try
                {
                    ClaimsPrincipal claims = jWTHandler.Validate(token.Remove(0, 7));
                    UserModel       user   = userModelService.GetUserByName(claims.Claims.First().Value);

                    httpContext.Items.Add("User", user);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
            }


            return(_next(httpContext));
        }