Example #1
0
        public Task Invoke(HttpContext httpContext, IAuthSystem authSystem)
        {
            // Проверка авторизации осуществляется путём проверки наличия uId в сессии
            if (!httpContext.Session.Keys.Contains("uId"))
            {
                // Если авторизованная сессия не создана - возможно, пользователь передал для авторизации свой токен
                if (httpContext.Request.Cookies.ContainsKey("userToken"))
                {
                    // Осуществляется попытка аутентификации пользователя по его токену
                    string token = httpContext.Request.Cookies["userToken"];
                    if (authSystem.TokenExist(token))
                    {
                        int?userId = authSystem.GetUserId(token);
                        if (userId.HasValue && userId >= 0)
                        {
                            authSystem.CreateUserSession(userId.Value);
                        }
                        authSystem.UpdateToken(token);
                    }
                }
            }

            return(_next(httpContext));
        }
Example #2
0
 public UsersController(UsersDB usersDB, IAuthSystem authSystem)
 {
     _usersDB    = usersDB;
     _authSystem = authSystem;
 }