У меня установлен IdentityServer3 на моем веб-сайте ASP.NET MVC и определен клиент (подключаемый модуль NopCommerce), как указано ниже (URL-адреса только для проверки):
new Client
{
ClientName = "Deep Stores",
ClientId = "deepstores",
ClientSecrets = new List<Secret>
{
new Secret("0B0A3FD3-F30C-428C-B1A3-6E570103614D".Sha256())
},
AccessTokenType = AccessTokenType.Reference,
RedirectUris = new List<string>
{
"http://localhost:2030/plugins/ExternalAuthDeepStudies/logincallback"
},
Flow = Flows.AuthorizationCode,
AllowAccessToAllScopes = true,
AllowedScopes = StandardScopes.All.Select(x => x.Name).ToList()
}
При попытке получить токен авторизации с URL-адресом, как показано ниже, он работает впервые (появляется вход в систему и предоставляет страницу бла-бла), но для остальных запросов он возвращает error=invalid_scope
для моего обратного вызова!
запрос на авторизацию конечной точки:
https://127.0.0.1/core/connect/authorize?client_id=deepstores&redirect_uri=http%3A%2F%2Flocalhost%3A2030%2Fplugins%2FExternalAuthDeepStudies%2Flogincallback&scope=profile&response_type=code
что происходит? и почему я получаю эту ошибку?
Области определены как:
public static IEnumerable<Scope> Get()
{
return new[]
{
StandardScopes.OpenId,
StandardScopes.Profile,
StandardScopes.Email,
StandardScopes.Address,
StandardScopes.Phone,
StandardScopes.OfflineAccess,
StandardScopes.RolesAlwaysInclude,
StandardScopes.AllClaims,
};
}
Обратите внимание, что я использую EntityFramework, и все мои сотрудники хранятся в базе данных. Кроме того, я использую ASP.NET Identity для управления пользователями и ролями.