1

这可能有点棘手,我不确定它是否正确。由于 iOS6 阻止在 Web 容器中设置 cookie,我的旧版 HTML5 Django 游戏非常依赖 cookie(会话 id)将无法再次运行。我正在尝试无cookie的方式,编写一个中间件将sessid从url中取出并将其保存到request.cookies ['sess_id']。我工作,但代码库包含很多依赖于 url 的逻辑,这些逻辑不可能一一改变...... url 可能看起来像,

    GET /sess_e4b817ee8993bdcbc34733feb18951ff/m/stage/quest/

现在我正在考虑从 url 中删除 sess 部分以使其返回

    GET /m/stage/quest/

并且所有正在进行的过程都不需要改变。我想我可以修改 django 请求对象的原始属性。修改哪个属性?还有其他更好的主意吗?谢谢。

4

2 回答 2

1

我采用的最后一种方式是改变iOS容器接受cookie,不再需要改变服务器端。一些代码供参考,

-(void)applicationDidBecomeActive:(UIApplication *)application {    
isInternetconnectionUp = [self checkInternetConnection];
    [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];
}
于 2012-09-27T03:57:03.590 回答
1

您只需重新包含带有前缀的 URL,无需更改任何内容。

url(r'^(?P<sessionid>sess_[a-f0-9]+)/', include('your_urls')),
于 2012-09-21T15:57:10.713 回答