【发布时间】:2017-01-22 00:00:30
【问题描述】:
我正在尝试构建一个类似开放式身份验证的系统,用户可以在其中通过另一个应用登录一个应用。
在此过程中,我的“身份验证”应用会秘密向“客户端”应用发送令牌。然后客户端应用程序调用身份验证应用程序询问用户的详细信息,以检查他们没有改变。最后,身份验证应用以用户详细信息进行响应,用户被重定向到客户端应用并使用令牌作为密码登录。
这一切似乎在我的本地机器上运行良好。但是,当推送到我的公共服务器时,出现问题。
身份验证应用似乎无法处理被要求提供用户详细信息的问题,而它仍在等待来自客户端应用的回复,该回复应确认已设置令牌。
基本上,客户端应用程序会等待身份验证应用程序回复其对详细信息的请求,而它从不这样做。因此,客户端应用程序永远不会回复身份验证应用程序已成功设置令牌。所以请求永远不会成功。这是粗略的时间表
AUTH : Posts token to client, waits for 200 response
CLIENT : Receive token, asks for user details, waits for 200 response
AUTH : Still waiting for its 200 response, so doesn't answer client request. After a while, ends in a 504 gateway timeout error
我应该更改我的代码以便异步进行一些调用吗?还是我发现问题有误?
【问题讨论】:
-
这可能是因为您的 django 的 Web 服务器运行在单个工作人员(单个进程)中。您使用的是什么网络服务器?阿帕奇? Nginx?你有办法检查并可能更改 Django 的工人数量吗?
标签: django post pythonanywhere