gpt4 book ai didi

javascript - Google Oauth 2 从授权码获取访问 token 和刷新 token

转载 作者:行者123 更新时间:2023-11-30 00:34:49 25 4
gpt4 key购买 nike

我在 javascript 的帮助下获得了授权码。现在在服务器上,我需要刷新 token 作为交换。这是我的代码。

    byte[] buffer = Encoding.ASCII.GetBytes("code=" + "....."
+ "&client_id=.....&client_secret=...&redirect_uri=https%3A%2F%2Fmysite.com%2Fportal%2F&grant_type=authorization_code");
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("https://accounts.google.com/o/oauth2/token");

req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = buffer.Length;

Stream strm = req.GetRequestStream();
strm.Write(buffer, 0, buffer.Length);
strm.Close();

HttpWebResponse resp = (HttpWebResponse)req.GetResponse();

它引发异常 Bad request,内部异常为 null。

更新:

我在 ASP.NET MVC 4 应用程序中使用它。由于是异步操作,所以我切换到Visual Studio 2013。我用 await 修改了代码:

UserCredential credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
new[] {
GmailService.Scope.GmailCompose, GmailService.Scope.GmailModify, GmailService.Scope.GmailReadonly
},
"user",
CancellationToken.None
) ;

在这个语句中,它挂起浏览器(类似于 this 问题)。我尝试放置日志,没有异常,也没有进一步执行。

最佳答案

Google 身份验证的第一步是响应类型代码。它是一个 HTTP GET,基本上只是打开一个新的浏览器窗口。一旦用户接受您的身份验证,他们就会获得一个身份验证代码,然后他们必须将该代码带回您的应用程序。它也出现在浏览器标题中。

https://accounts.google.com/o/oauth2/auth?client_id={clientid}.apps.googleusercontent.com&redirect_uri=urn:ietf:wg:oauth:2.0:oob&scope=https://www.googleapis.com/auth/analytics.readonly&response_type=code

可以在此处找到所有三个步骤的完整说明 Google 3 legged oauth2

我不确定我是否理解您为什么要这样做。使用 Google .net 客户端库要容易得多。 NuGet Google Client lib我不确定你打算访问哪个 API,但是用 nuget 谷歌它,你应该找到合适的库来安装。

关于javascript - Google Oauth 2 从授权码获取访问 token 和刷新 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27675436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com