5
我正在尝试使用Google的Calendar API来演示OAuth2集成,我们需要使用另一个第三方。我正在使用DotNetOpenAuth库,并且我已经能够获得最初重定向到谷歌的允许/拒绝提示并获得授权码。获取OAuth2刷新令牌
我现在需要获取访问令牌和刷新令牌,但我似乎只能获取访问令牌,刷新令牌为空。
这是谷歌重定向回用户接受后,或拒绝我的控制器的操作方法:
public ActionResult ProcessResponse(string state, string code, string error)
{
var oAuthClient =
new WebServerClient(
new AuthorizationServerDescription
{
TokenEndpoint = new Uri("https://accounts.google.com/o/oauth2/token"),
AuthorizationEndpoint = new Uri("https://accounts.google.com/o/oauth2/auth"),
ProtocolVersion = ProtocolVersion.V20
},
_applicationId,
_secret)
{
AuthorizationTracker = new TokenManager()
};
var authState = oAuthClient.ProcessUserAuthorization();
var accessToken = authState.AccessToken;
var refreshToken = authState.RefreshToken;
return View(new[] { accessToken, refreshToken });
}
任何想法?
编辑:
获取授权码,我设置了oAuthClient相同,以上面我做的,用这个方法:
oAuthClient.RequestUserAuthorization(new[] { "https://www.googleapis.com/auth/calendar" }, returnUrl);
请修改您的问题以包括您提交原始授权请求的方式。 –
@AndrewArnott完成;它只是对'RequestUserAuthorization'的一次调用。 – Andy
您是否可以在请求中包含更多上下文?例如,如何构建用于发送请求的'oAuthClient'? –