【发布时间】:2016-07-02 22:51:43
【问题描述】:
我已经从google api client dotnet 和教程中实现了GoogleAuthorizationCodeFlow 场景,以从我的客户端作为代码发送到服务器的内容中获取令牌。但是当我打电话给flow.ExchangeCodeForTokenAsync 时,我收到以下错误:
{"Error:\"invalid_grant\", Description:\"\", Uri:\"\""}
我读了google authorization invalid_grant 和gusclass oauth 2 using google dotnet api client libraries,但它们并没有帮助我。我认为它一定很简单,但我不知道为什么它不起作用。 对于客户端,我使用了Satellizer,这是我的服务器代码:
public bool PostExchangeAccessToken(GoogleClientAccessCode code)
{
string[] SCOPES = { "email" };
IAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow(new GoogleAuthorizationCodeFlow.Initializer
{
ClientSecrets = new ClientSecrets()
{
ClientSecret = "******",
ClientId = "********.apps.googleusercontent.com"
},
Scopes = SCOPES
});
try
{
TokenResponse token;
token = flow.ExchangeCodeForTokenAsync("*****@gmail.com", Newtonsoft.Json.JsonConvert.SerializeObject(code), "https://localhost:44301/",
CancellationToken.None).Result;
}
catch (Exception ex)
{
throw ex;
}
return true;
}
有什么问题?
【问题讨论】:
标签: asp.net-web-api oauth-2.0 google-signin google-oauth google-oauth-.net-client