我成功实施了自定义OAuthAuthorizationServerProvider
。但是当我登录并检索令牌时,我的客户并不知道用户的角色,声明等。
我目前添加了一个webapi控制器来返回主要声明的列表,但我对此并不满意。
请求令牌时,当前响应如下:
{
access_token: "qefelgrebjhzefilrgo4583535",
token_type: "bearer",
expires_in: 59
}
问>如何让它返回类似下面的片段?
{
access_token: "qefelgrebjhzefilrgo4583535",
token_type: "bearer",
expires_in: 59,
user: {
name: 'foo',
role: 'bar'
}
}
到目前为止我的进展:
OAuthAuthorizationServerProvider#TokenEndpoint(OAuthTokenEndpointContext)
的文档说:
在成功的令牌端点请求的最后阶段调用。一个应用程序 可以实施此调用以对权利要求进行任何最终修改 用于发出访问权限或刷新令牌。也可以使用此呼叫 为了将额外的响应参数添加到令牌端点的json中 回应机构。
我无法找到如何自定义响应的示例,并且asp-net Identity的源代码尚未发布,所以我很困惑。
答案 0 :(得分:33)
您可能正在寻找TokenEndpoint
的{{1}}方法覆盖。
OAuthAuthorizationServerProvider
答案 1 :(得分:0)
我认为您需要覆盖TokenEndpointResponse
课程上的OAuthAuthorizationServerProvider
:
public override Task TokenEndpointResponse(OAuthTokenEndpointResponseContext context)
{
context.AdditionalResponseParameters.Add("Key","Value");
return base.TokenEndpointResponse(context);
}