shopify_auth 多商店会话处理
shopify_auth multi store session handling
我正在使用带有 shopify_auth 包的 Django 来连接 Shopify。
有没有人有任何关于如何处理多商店的例子sessions/connections?
到目前为止,我正在考虑使用以下内容修改 shopify_auth 的 @login_required
装饰器,但不确定我是否会遗漏任何内容:
在shopify_auth/decortaors.py:
def login_required(f, redirect_field_name=REDIRECT_FIELD_NAME, login_url=None):
@wraps(f)
def wrapper(request, *args, **kwargs):
if request.user.is_authenticated():
# Extract the Shopify-specific authentication parameters from the current request.
new_request_d = [ ... get request.GET params ('shop', etc.) ... ]
# Compare current active request.user with new reqeust.GET's 'shop'
if request.user != new_request_d['shop']:
[ ... do something to change session to the other shop ...]
[ ... redirect as necessary .... ]
return f(request, *args, **kwargs)
在 shopify_auth 模块中,它们是 unresolved issue about this。
提示using the ruby implementation。
如能提供正确方向的帮助,我们将不胜感激。
来自 Shopify 的每个请求都带有商店域。您的当前会话设置为商店域。比较两者。如果它们不同,请清除旧会话,并使用不同的传入商店域授权一个新会话。似乎对我来说很好用。
我已经通过创建自定义修改 SessionMiddleware
解决了我工作的应用程序中的问题,该自定义修改 SessionMiddleware
为每个商店创建和处理单独的 session cookie,并通过 (按照以下优先顺序):
- 请求headers
- URL 参数
- 推荐人
很遗憾,由于 closed-source agreements/restrictions,我无法分享确切的实现,但我希望这能引导您朝着正确的方向前进。
确保您仍然包括其他安全中间件(CsrfViewMiddleware
、AuthenticationMiddleware
、SessionAuthenticationMiddleware
、
SecurityMiddleware
) 这样用户就无法欺骗您的系统。
这样做而不是注销用户的好处是,如果您通过 AJAX 加载任何内容,在不同应用程序安装的选项卡之间来回切换将始终有效,并且您不会担心实施奇怪的重定向逻辑来处理这些错误。
我正在使用带有 shopify_auth 包的 Django 来连接 Shopify。
有没有人有任何关于如何处理多商店的例子sessions/connections?
到目前为止,我正在考虑使用以下内容修改 shopify_auth 的 @login_required
装饰器,但不确定我是否会遗漏任何内容:
在shopify_auth/decortaors.py:
def login_required(f, redirect_field_name=REDIRECT_FIELD_NAME, login_url=None):
@wraps(f)
def wrapper(request, *args, **kwargs):
if request.user.is_authenticated():
# Extract the Shopify-specific authentication parameters from the current request.
new_request_d = [ ... get request.GET params ('shop', etc.) ... ]
# Compare current active request.user with new reqeust.GET's 'shop'
if request.user != new_request_d['shop']:
[ ... do something to change session to the other shop ...]
[ ... redirect as necessary .... ]
return f(request, *args, **kwargs)
在 shopify_auth 模块中,它们是 unresolved issue about this。
提示using the ruby implementation。
如能提供正确方向的帮助,我们将不胜感激。
来自 Shopify 的每个请求都带有商店域。您的当前会话设置为商店域。比较两者。如果它们不同,请清除旧会话,并使用不同的传入商店域授权一个新会话。似乎对我来说很好用。
我已经通过创建自定义修改 SessionMiddleware
解决了我工作的应用程序中的问题,该自定义修改 SessionMiddleware
为每个商店创建和处理单独的 session cookie,并通过 (按照以下优先顺序):
- 请求headers
- URL 参数
- 推荐人
很遗憾,由于 closed-source agreements/restrictions,我无法分享确切的实现,但我希望这能引导您朝着正确的方向前进。
确保您仍然包括其他安全中间件(CsrfViewMiddleware
、AuthenticationMiddleware
、SessionAuthenticationMiddleware
、
SecurityMiddleware
) 这样用户就无法欺骗您的系统。
这样做而不是注销用户的好处是,如果您通过 AJAX 加载任何内容,在不同应用程序安装的选项卡之间来回切换将始终有效,并且您不会担心实施奇怪的重定向逻辑来处理这些错误。