Duende.BFF со Strava OAuth: получение данных из тела json после обмена токена на доступ и токен обновления

Я разрабатываю приложение Hosted Blazor WASM, которое использует OAuth Strava для аутентификации. Поскольку я не хочу хранить токены доступа и обновления в браузере, я использую Duende.BFF.

Моя программа.cs настроена так:

      {
    options.DefaultScheme = "cookie";
    options.DefaultChallengeScheme = "oidc";
    options.DefaultSignOutScheme = "oidc";
})
    .AddCookie("cookie", options =>
    {
        options.Cookie.Name = "__Host-blazor";
        options.Cookie.SameSite = SameSiteMode.Strict;
    })
    .AddOAuth("oidc", options =>
    {
        options.ClientId = "clientid";
        options.ClientSecret = "clientsecret";
        options.AuthorizationEndpoint = "https://www.strava.com/oauth/authorize";
        options.TokenEndpoint = "https://www.strava.com/api/v3/oauth/token";
        options.CallbackPath = "/bff/callback";
        options.Scope.Add("activity:read_all,read_all");
        options.SaveTokens = true;
    });

Это прекрасно работает, но Strava что-то делает после обмена токена на токен доступа и обновления. Ответ такой:

        "token_type": "Bearer",
  "expires_at": 1568775134,
  "expires_in": 21600,
  "refresh_token": "e5n567567...",
  "access_token": "a4b945687g...",
  "athlete": {
    #{summary athlete representation}
  }
}

Я хотел бы добавить свойство спортсмена к заявлениям пользователей, но пока не вижу способа сделать это.

Я попытался расширить эти конечные точки:

      services.AddTransient<ILoginService, DefaultLoginService>();
services.AddTransient<IUserService, DefaultUserService>();

Но я думаю, что это уже слишком поздно в цепочке, потому что исходный ответ здесь больше не доступен.

Есть ли способ расширить это где-то? Я попытался просмотреть исходный код Duende.BFF, но не смог понять, где установлены токены доступа и обновления.

0 ответов

Другие вопросы по тегам