문제

This can be a little tricky and I'm not sure if it's correct way. Since iOS6 prevent setting cookie in the web container, my legacy HTML5 Django game which rely much on cookie (session id) won't work again. I am trying the cookieless way, write a middleware to bring the sessid out from the url and save it to request.cookies['sess_id']. I works, but the codebase contains alot url dependent logics which are impossible to change one by one... url may look like,

    GET /sess_e4b817ee8993bdcbc34733feb18951ff/m/stage/quest/

now I'm thinking about remove the sess part from the url to make it back to

    GET /m/stage/quest/

and all the on-going process will need no change. I guess I can modified the original property of the django request object. Which property to modify? any other better idea? Thanks.

도움이 되었습니까?

해결책 2

The final way I adopt is to change the iOS container to accept cookie, and no need to change the server side any more. some code for reference,

-(void)applicationDidBecomeActive:(UIApplication *)application {    
isInternetconnectionUp = [self checkInternetConnection];
    [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];
}

다른 팁

You can just re-include your URLs with a prefix, no need to change anything.

url(r'^(?P<sessionid>sess_[a-f0-9]+)/', include('your_urls')),
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top