3

DotNetOpenAuth を使用して OAuth2 プロバイダーを実装しています。暗黙的なフローを使用して、param 内の関数CreateAccessToken( ) に追加のデータを渡し、それをトークンに割り当てることができました。IAuthorizationServerHost(IAccessTokenRequest accessTokenRequestMessage)

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

EndUserAuthorizationRequestAuhtorize エンドポイントの内部に情報を追加して、それを達成しました。

問題は、認証コード フローを使用して同じことを行うと、param に(IAccessTokenRequest accessTokenRequestMessage)は常に ExtraData の空のコレクションがあることです。

このフローを使用すると Token エンドポイントへの 2 回目の呼び出しがあり、情報が失われるためだと思います。

この情報を CreateAccessToken 関数に渡すにはどうすればよいですか? 前もって感謝します。

4

1 に答える 1

1

トークンの作成に情報を渡す唯一の方法は、User プロパティを使用することでした。

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

必要な情報の JSON シリアル化の暗号化された文字列を渡しました。次に、CreateAccessToken 関数から、Reflection over IAccessTokenRequest パラメーターを使用して値を取得しました。

私が望むほどエレガントな解決策ではありませんが、少なくともうまくいきました!

于 2013-10-16T14:45:24.330 に答える