我正在使用雪花ODBC连接进行连续的API调用。我的访问令牌将在10分钟内到期,并且可以使用下面的调用使用刷新令牌进行刷新。但90天后,我的刷新令牌过期了。但是这个API端点
curl -X POST -H "Content-Type: application/x-www-form-urlencoded;charset=UTF-8"
--user "<OAUTH_CLIENT_ID not encoded>:<OAUTH_CLIENT_SECRET>"
--data-urlencode "grant_type=refresh_token"
--data-urlencode "refresh_token=<refresh_token value>"
--data-urlencode "redirect_uri=<OAUTH_REDIRECT_URI not encoded>"
<https://mydomain.snowflakecomputing.com/oauth/token-request>
这个调用只在刷新令牌有效的情况下返回访问令牌。
返回400个错误请求,当刷新令牌过期时不发送新的访问和刷新令牌。
如何自动刷新refresh_token ?是否有可能或者我们应该重复登录过程,这是唯一的方法?无法刷新refresh_token。一旦refresh_token过期,您将不得不启动整个OAuth授权代码流,这是基于OAuth 2.0 RFC的。
- 使用用户名/密码登录
- 获取授权码
- 使用上面步骤(2)中的授权码交换访问令牌和刷新令牌
- 当刷新令牌过期时,重复步骤(1)
Snowflake OAuth是基于OAuth 2.0的,你可以参考这里的RFC:https://datatracker.ietf.org/doc/html/rfc6749