OWIN существующие проблемы с реализацией и есть ли хорошая архитектура аутентификации? - PullRequest
1 голос
/ 08 апреля 2020

Я новичок в этом форуме, недавно я просматриваю существующий C# MVC код API, в котором реализован OWIN, поэтому проблема в том, что срок действия маркера доступа истек (через 20 минут), даже если клиент активно делает что-то на стороне сервера или на стороне пользовательского интерфейса, что, по моему мнению, неверно, токен должен истечь только тогда, когда клиент неактивен через 20 минут, так есть ли способ остановить истечение токена, если клиент активен?

Я видел концепцию refre sh токена, однако это кажется немного сложным, мне нужно как-то отслеживать пользовательский сеанс на стороне клиента, когда клиент входит в систему, поэтому сеанс собирается завершиться через 20 минут, я нужно отправить запрос post с помощью маркера refre sh, это включает в себя много кода на стороне клиента, и если я делаю то же самое через почтальон или службу windows, то я не могу логически отслеживать времени, так есть ли способ, ОВИН позаботится обо всем этом? так что мне не нужно отслеживать какие-либо сеансы, OWIN автоматически создаст новый токен доступа после истечения срока действия с помощью рефре sh токена. Пожалуйста, дайте мне знать, если это хорошая архитектура и есть ли какие-либо нарушения безопасности, если используется токен refre sh? И добавлены ли новые функции?

Не могли бы вы также сообщить мне, если есть какая-либо хорошая архитектура лучше, чем OWIN ??

Вот мой существующий код только для токена доступа.

 public void Configuration(IAppBuilder app)
        {
            ConfigureOAuth(app);
        //Rest of code is here;
        }

        public void ConfigureOAuth(IAppBuilder app)
        {
            OAuthAuthorizationServerOptions OAuthServerOptions = new OAuthAuthorizationServerOptions()
            {
                AllowInsecureHttp = true,
                TokenEndpointPath = new PathString("/api/token"),
                AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(20),
                Provider = new AuthorizationServerProvider()
            };

            // Token Generation
            app.UseOAuthAuthorizationServer(OAuthServerOptions);
            app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());

        }

Есть и другие фрагменты кода, но это стандарт, который можно найти где угодно.

...