gpt4 book ai didi

.net - GData OAuthUtil.GetAccessToken不返回refresh_token值

转载 作者:行者123 更新时间:2023-12-02 10:57:14 25 4
gpt4 key购买 nike

当我使用 Google.GData.Client .NET 库并尝试启动 OAuth session 时,它可以正常工作,直到 session 过期。当我执行初始 GetAccessToken 请求时,RefreshToken 值似乎为 null

第 1 步(default.aspx):

OAuth2Parameters parameters = new OAuth2Parameters();
//<<build parameters with keys and CLIENT_IDs and such>>
string authorizationUrl = OAuthUtil.CreateOAuth2AuthorizationUrl(parameters);
Response.Redirect(authorizationUrl);

第 2 步 (oauth.aspx):

Session["ACCESS_CODE"] = Request.QueryString["code"];
Response.Redirect("Results.aspx");

第三步 (results.aspx)

if (Session["ACCESS_CODE"] == null)
Response.Redirect("Default.aspx");

parameters.AccessCode = Session["ACCESS_CODE"].To_String();
OAuthUtil.GetAccessToken(parameters);
Response.Write("OAuth Access Token: " + parameters.AccessToken);
Session["ACCESS_TOKEN"] = parameters.AccessToken;
Session["REFRESH_TOKEN"] = parameters.RefreshToken;

当我检查此时的代码时,我的RefreshToken == null。因此我无法打电话

OAuthUtil.RefreshAccessToken(parameters); 

没有出现值不能为null错误。

最佳答案

通过 OAuth 2.0 离线流程,您仅在用户首次交换授权代码并授予对您的应用程序的访问权限时收到刷新 token 。您应该将该刷新 token 存储在数据库中以供以后使用。

如果任何时候您需要用户的刷新 token ,但数据库中没有该 token ,或者您拥有的刷新 token 已损坏或已撤销,则必须将用户发送回授权页面,以便它可以再次授予访问权限并为您提供新的刷新 token 。

Google Drive SDK documentation彻底解释了这个过程。另外,还有a complete ASP.NET MVC application可以作为引用。

关于.net - GData OAuthUtil.GetAccessToken不返回refresh_token值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12077455/

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