我在使用DotNetOpenAuth 4.2.0.13024为谷歌搜索OAuth2令牌时遇到问题。
我已经到了可以成功向Google端点https://accounts.google.com/o/oauth2/auth发送授权请求的位置
当用户点击“确定”时,Google会按预期使用相应的“代码”查询字符串调用我的回调网址。
但是,我无法将此代码替换为令牌,因为我的调用始终失败,“协议异常未处理”execption和“400 Bad request”作为内部异常。这是我用来交换令牌的代码
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一直对我失败:(