0

说我的代码中有这个调用:

products = shopify.Product.find()
如果我刚刚登录,它可以工作,但一段时间后它开始失败并显示错误消息AttributeError: 'NoneType' object has no attribute 'find'。我认为这是因为会话过期而我的代码没有检查。

有没有办法检查shopify会话是否已过期?我将商店 URL 和身份验证令牌存储在我的 webapp2 会话中,因此:

self.session['shopify'] = {
    'shop_url': shopify_session.url,
    'access_token': shopify_session.token
    }
是否有任何其他属性需要存储在我的 Web 会话中,可用于检查 shopify 会话是否已过期?

4

2 回答 2

0

Shopify access_token永不过期,过期或被重置的是您的会话。

如果您使用的是共享主机,那么重置会话的可能性要高得多,因为它们非常频繁地重置应用程序池。

如果是这种情况,那么您应该考虑使用持久会话而不是内存会话。如果您使用的是 .NET,那么您可以阅读ASP.NET State ManagementConfigure SQL Server for ASP.NET SQL Server Session State

于 2014-09-18T06:53:04.890 回答
0

这取决于你的访问模式,如果你想要一个永久的访问令牌,你应该使用离线访问模式,在线访问模式在用户会话过期后过期。

https://shopify.dev/concepts/about-apis/authentication#api-access-modes

于 2021-01-12T10:05:57.337 回答