На основании вашего комментария:
Но можно ли вместо изменения конечной точки по умолчанию создать другую конечную точку, которая делает то же самое (сгенерирует токен)?
Похоже, вы скорее ищете Расширение обнаружения . На самом деле это довольно просто.
Добавьте пользовательскую запись в конфигурацию запуска:
services.AddIdentityServer(options =>
{
options.Discovery.CustomEntries.Add("custom_token", "~/customtoken");
});
И добавьте контроллер, который обрабатывает запрос:
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
// In case a token is required for login, like the UserInfo endpoint:
//[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
[ApiController]
public class CustomTokenController : ControllerBase
{
[Route("customtoken")]
public IActionResult CustomTokenEndpoint()
{
return Ok();
}
}
Обновление
Вы можете «заменить» конечную точку, отключив конечную точку авторизации по умолчанию и добавив пользовательскую конечную точку, как описано выше.
Отключите конечную точку:
services
.AddIdentityServer(options =>
{
options.Endpoints.EnableAuthorizeEndpoint = false;
})
Вы можете использовать Константу пути авторизации .
public const string Authorize = ConnectPathPrefix + "/authorize";
Добавить новую конечную точку:
services.AddIdentityServer(options =>
{
options.Discovery.CustomEntries.Add("authorization_endpoint", $"~/{Authorize}");
});
Обратите внимание, я не не проверял, но я думаю, что это должно сработать.