Внешние токены могут существовать только после создания пользователя. - PullRequest
0 голосов
/ 01 марта 2020

Я пытаюсь добавить Spotify в качестве источника аутентификации для стороннего проекта, над которым я работаю, и у меня возникают проблемы, связанные с токенами аутентификации.

Когда пользователь впервые проходит аутентификацию и пользователь создается в База данных Я могу получить доступ к токену в контроллере, используя

var accessToken = HttpContext.GetTokenAsync("Spotify", "access_token").Result;

, и все в порядке.

Но если вы выйдете из системы, а затем снова войдете в систему, то вышеупомянутый вызов в контроллере будет нулевым.

Нужно ли вручную устанавливать токен где-нибудь после входа в систему? Ниже приведены мои варианты авторизации

services.AddAuthentication()
                    .AddSpotify(options => {
                        options.ClientId = "CLIENT_ID";
                        options.ClientSecret = "CLIENT_SECRET";
                        options.CallbackPath = "/callback";
                        options.SaveTokens = true;

                        options.Events.OnCreatingTicket = ctx =>
                        {                            
                            List<AuthenticationToken> tokens = ctx.Properties.GetTokens().ToList();

                            tokens.Add(new AuthenticationToken()
                            {
                                Name = "TicketCreated",
                                Value = DateTime.UtcNow.ToString()
                            });

                            ctx.Properties.StoreTokens(tokens);

                            return Task.CompletedTask;
                        };
                    }); // end of spotify options
...