1

我在使用 DotNetOpenAuth 4.2.0.13024 为 google 检索 OAuth2 令牌时遇到问题。

我已经到了可以成功向谷歌端点https://accounts.google.com/o/oauth2/auth发出授权请求的地步

当用户单击“确定”时,谷歌会按照预期使用适当的“代码”查询字符串调用我的回调 URL。

但是,我无法将此代码交换为令牌,因为我的调用一直失败,“协议异常未处理”执行和“400 错误请求”作为内部异常。这是我用来交换令牌的代码

private static AuthorizationServerDescription authServerDescription = new AuthorizationServerDescription
{
    TokenEndpoint = new Uri("https://accounts.google.com/o/oauth2/token"),
    AuthorizationEndpoint = new Uri("https://accounts.google.com/o/oauth2/auth")
};

static GoogleContacts()
{
    Client = new WebServerClient(authServerDescription, "{my_cliend_id}", "{me_secret_key}");
}

var authorization = Client.ProcessUserAuthorization(); // <- Exception is thrown here
if (authorization != null)
{
   Authorization = authorization;
   Response.Redirect(Request.Path); // get rid of the /?code= parameter
}

PS:似乎 DotNerOpenAuth 的新版本已经发布,但是我无法获得它,因为 zip 下载仍然指向旧版本,并且 Nuget 一直在我身上失败:(

4

0 回答 0