如何在授权代码流中将额外数据设置为访问令牌

时间:2013-10-01 06:54:02

标签: oauth-2.0 dotnetopenauth

我正在使用DotNetOpenAuth实现OAuth2提供程序。 使用隐式流,我能够在参数CreateAccessToken内将额外数据传递给函数IAuthorizationServerHost(IAccessTokenRequest accessTokenRequestMessage))并将其分配给令牌:

accessToken.ExtraData.Add("DeptID", accessTokenRequestMessage.ExtraData["DeptID"].ToString());

我完成了在Auhtorize端点中添加EndUserAuthorizationRequest内的信息。

问题在于使用授权代码流并执行相同的操作,param (IAccessTokenRequest accessTokenRequestMessage)总是有一个空的ExtraData集合。

我认为这是因为使用此流程会再次调用Token端点,并且信息会丢失。

我怎样才能将此信息传递给CreateAccessToken函数? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

我将信息传递给令牌创建的唯一方法是使用User属性:

var response = this.AuthServer.PrepareApproveAuthorizationRequest(AuthorizationRequest, userInfoString);

我已经传递了所需信息的加密字符串JSON序列化。然后,从CreateAccessToken函数中,我使用Reflection over IAccessTokenRequest参数检索了该值。

这不是我想要的优雅解决方案,但至少它起作用了!