咱们获取sess key之后,之前获取的fresh_token也会失效吗?

我通过下面的方式,用acess_token获取sess-key之后,发现之前获取的fresh_token失效了,要如何重新获取fresh_token呀,有搞过的朋友提点一下吗?

    def get_sess_key(self, access_token):
        headers = {
            "Authorization": f"Bearer {access_token}",
            "Content-Type": "application/json",
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 OPR/105.0.0.0",
        }
        response = requests.post('https://api.openai.com/dashboard/onboarding/login', headers=headers, data={})
        if response.ok:
            data = json.loads(response.text)
            return (data['user']['session']['sensitive_id'], data['user']['session']['created'])
1 Like

常规话题软件开发

#openai添加

refresh_token目前看下来改密码会失效。

1 Like

我都不改密码,太麻烦。我只通过接口获取能用的key就行了。

就是不明白,通过acess_token获取sess,为啥会影响到fresh_token失效的,哎。

手动点退出也会吊销refresh_token

我获取完refresh_token和access_token之后,就没有用浏览器访问了,都是直接Python通过接口获取key了。有接口可以通过access_token来获取refresh_token的吗?

access_token不可能反过来获取refresh_token,不然全乱套了

也是的。那咱们,有没有啥办法可以让refresh_token保持有效呢,不然这个refresh_token感觉就只能用一次了 :joy:

你开无痕浏览器,获取了之后直接关掉

通过浏览器获取refresh_token是没问题的。问题是之后的使用。

我把token都存在数据库,通过refresh_token可以一直刷新access_token和refresh_token,可是一旦用接口(https://api.openai.com/dashboard/onboarding/login)access_token获取了sess,那么存在数据库里的refresh_token也就失效了,不能继续刷新access_token了

大致明白了,一旦login行为发生,之前的 refresh_token 也就失效了,需要重新通过用户名和密码登录获取新的refresh_token。

哎,我就被困在登录上了,调用浏览器登录,效率非常慢,挂一天才能处理五六百个,要是有接口能直接调用,而不是用浏览器登录就好了。

直接执行上面的代码可以获取sess-key?我怎么没反应的?

佬,对了,如果改密码了,access_token会不会立刻失效呢!我在我号上测试,好像还不会。

不要改密码就没事,我放了100个team进去,不改账号密码,没所谓的,team网页版该聊天还是聊天。一点不碍事,我api逆向调用

你有正确的access_token就可以了

def get_sess_key(self, access_token):
headers = {
“Authorization”: f"Bearer {access_token}",
“Content-Type”: “application/json”,
“User-Agent”: “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 OPR/105.0.0.0”,
}
response = requests.post(‘https://api.openai.com/dashboard/onboarding/login’, headers=headers, data={})
if response.ok:
data = json.loads(response.text)
return (data[‘user’][‘session’][‘sensitive_id’], data[‘user’][‘session’][‘created’])
我就是直接套用这代码,换了access_token在pycharm中执行,没有反应,啥也没输出

我这是放在class里的,参数里有个self看到没,你要自己修改下,而且没有报错的话,说明执行没问题,否则你获取data[‘user’][‘session’][‘sensitive_id’]会发生异常,函数return后,你打印结果看看,或者你直接打印response.text

我将self的参数删除的了,直接传access_token,不知道是不是电脑开了V2的问题,等了很久,提示连接超时

From #dev to 开发调优