Процедура авторизации/логина

108
28 июля 2021, 13:50

Для работы с WEB-api и недопущения взлома, каждая сессия клиента должна авторизоваться на сервере, при пмощи вызова GET функции login с параметрами в заголовке User string, содержит email AType int 1=google, 0=fireBase, 2=FaceBook (тип авторизации) Token - GUID, который вернула система аутентификации функция: проверяет правильность переданного токена добавляет запись в список активных сессий с присвоением GUID сессии возвращает в теле ответа GUID сессии, в формате JSON

Помогите не пойму как сделать

Answer 1

Все просто, ваш сервис должен авторизировать клиента полученным от него токеном. Это называется Bearer авторизация ... т.е. передачи токена в заголовке (Authorization: Bearer [token]). Клиент передает в заголовке вам токен, вы его в своем сервисе получаете и проверяете. вы можете использовать метод GoogleJsonWebSignature.ValidateAsync для проверки подписанного Google JWT. Ну и в сервисе добавить что то вроде этого, для JWT авторизации

   public void ConfigureServices(IServiceCollection services)
    {
        services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
                .AddJwtBearer(options =>
                {
                    options.RequireHttpsMetadata = false;
                    options.TokenValidationParameters = new TokenValidationParameters
                    {
                        // укзывает, будет ли валидироваться издатель при валидации токена
                        ValidateIssuer = true,
                        // строка, представляющая издателя
                        ValidIssuer = AuthOptions.ISSUER,
                        // будет ли валидироваться потребитель токена
                        ValidateAudience = true,
                        // установка потребителя токена
                        ValidAudience = AuthOptions.AUDIENCE,
                        // будет ли валидироваться время существования
                        ValidateLifetime = true,
                        // установка ключа безопасности
                        IssuerSigningKey = AuthOptions.GetSymmetricSecurityKey(),
                        // валидация ключа безопасности
                        ValidateIssuerSigningKey = true,
                    };
                });
        services.AddMvc();
    }
READ ALSO
вывод промежуточных данных в строку таблицы c#

вывод промежуточных данных в строку таблицы c#

Есть веб-форма, на которой существует несколько выпадающих списков и некая таблица с заполненными даннымиполе Pocket_num соответствует выбору...

172
Событие добавления элемента в Hashtable

Событие добавления элемента в Hashtable

У меня есть объект типа Hashtable, необходимо создать событие, которое бы отслеживало добавление элемента и указывало бы ключ, по которому я добавляю...

302
EF Core - проверка до update/insert

EF Core - проверка до update/insert

Пишу приложение которые часто (и много) перебирает данных с xlsx таблиц поставщиков

228