【发布时间】:2019-03-29 15:27:39
【问题描述】:
我在同一个项目中有 IdentityServer4 和一个 Web API,我想在我自己的控制器中使用 IdentityServer 令牌处理,例如我想在我自己的控制器中发布令牌、刷新令牌、撤销令牌,而不调用其他内置的 IdentityServer 端点。 有没有像我这样失踪的东西的服务? 谢谢
我需要下面的 someIdentityServerService 之类的东西
[AllowAnonymous]
[HttpPost("login")]
public async Task<IActionResult> Login([FromBody] UserLoginRequestDto model)
{
var user = await _userManager.FindByEmailAsync(model.Email);
if (user == null || !await _userManager.CheckPasswordAsync(user, model.Password))
{
return BadRequest("Wrong email or password!");
}
// do some other stuff
var token = await someIdentityServerService.GetAccessTokenAsync(user);
return Ok(token);
}
【问题讨论】:
-
请分享您的代码
-
IdentityServer 只是一个 API,它是一个非常专业的 API,但仍然是一个 API。因此,您可以像使用任何其他 API 一样通过
HttpClient与它进行交互。如果您想要一个“服务”,只需创建一个包含HttpClient的类并将您需要作为方法进行的调用公开。然后你就可以在你的应用程序中使用这个类了。 -
@Chris Pratt 我不认为这是真的,有像 IIdentityServerInteractionService (docs.identityserver.io/en/latest/reference/…) 这样的服务可以让你在服务级别上做一些事情,例如撤销令牌和东西,我需要类似的东西,可用于 API 的完整令牌管理(处理令牌和刷新令牌)
标签: c# asp.net-core identityserver4