Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Android] HTTP Requests naar website - cookie probleem?

Pagina: 1
Acties:

  • NickThissen
  • Registratie: November 2007
  • Laatst online: 18-11 13:07
Ik heb een Android app geschreven waarmee mensen kunnen inloggen op een (prive) forum van een race sim (iRacing.com). Het idee van de app is in principe heel simpel: mensen loggen in met hun username/password, daarmee doe ik een HTTP request naar de Login pagina van het forum, en ik onthou de cookies die terug komen. Daarna doe ik voor elke pagina van het forum die de gebruiker opvraagt weer een simpele HTTP request waarbij ik de cookies weer mee stuur zodat de gebruiker ingelogd is.

Dit werkt al tijden lang voor de meeste gebruikers maar eigenlijk vanaf het begin al ontvang ik klachten van mensen waarbij het maar niet wil werken (of misschien 9/10 keer niet en heel af en toe wel).

Door middel van logging ben ik er achter gekomen dat deze mensen doorgestuurd worden naar een pagina wat in principe zegt dat de gebruiker Javascript moet inschakelen. Dit komt er dan in mijn logging als pagina die de gebruiker terug krijgt:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 
  
 <html>
 
    <head>
 
        
        <meta name="GENERATOR" content="IBM Software Development Platform">
        <meta http-equiv="content-style-type" content="text/css">
 
        <script src="/jforum/templates/iracing/js/jquery.js?ver=1.004"></script>
        <script src="/jforum/templates/iracing/js/iracing_script.js?ver=1.004"></script>
        
        <link rel="stylesheet" href="/jforum/templates/iracing/styles/login.css?ver=1.004" />
        
        <title>Log in | iRacing.com&trade; Motorsport Simulations</title>
    
    </head>
    
    <body onLoad = "setInterval('checkField()',50);">
    
        <div id="wrapper">
 
            <div id="feedback">
                <div class="warning" id="feedbackTop"></div>
                <div class="warningTile" id="feedbackMiddle">
                    <div id="feedbackMessage">
                        <noscript>
                        
                            <style type="text/css">
                                /* Initialize noscript styling */ 
                                #feedback, #feedbackMessage {display: inline;}
                                #feedbackTop, #feedbackBottom {height: 20px;}
                                #feedbackMessage {height: auto;}
                            </style>
                            
                            <p>JavaScript not enabled.  You must enable JavaScript to use iRacing.com&trade;.  When you have enabled JavaScript, reload the page to continue checking Internet Browser Requirements.</p>
                            <ul>
                                <li>To enable JavaScript in <strong>FireFox</strong>, go to Tools &rArr; Options &rArr; Content and check the box, "Enable JavaScript".</li>
                                <li>To enable JavaScript in <strong>IE, go to Tools &rArr; Internet Options.  Click on the "Security" tab.  Click on "Custom level".  Scroll down to "Scripting".  Check "Enable" on the "Active scripting" setting.</strong></li>
                                <li>To enable JavaScript in <strong>Safari, go to Edit &rArr; Preferences.  Click on the "Security" tab.  Check "Enable JavaScript".</strong></li>
                                <li>To enable JavaScript in <strong>Chrome, click the wrench icon &rArr; Options.  Click on the "Content Settings" button &rArr; JavaScript.  Under JavaScript Settings, click "Allow all sites to run JavaScript".</strong></li>
                            </ul>
                        
                        </noscript>
                    </div>
                </div>
                <div class="warning" id="feedbackBottom"></div>
            </div>
            
            <div id="content">
                
                <div id="service">
                    <img src="/jforum/templates/iracing/images/login/email.gif" alt="email" width="29" height="12" /><span><a href="mailto:support@iracing.com">support@iracing.com</a></span>
                    <img src="/jforum/templates/iracing/images/login/faqs.gif" alt="faqs" width="29" height="12" /><span><a href="javascript:launch_FAQ()">FAQs </a></span>
                </div>
    
                
 
 
 
 
 
                <h1>Sign In</h1>
                
                
                <form method="post" name="LOGIN" action="/jforum/Login" >
                    <input class="username" name="username" type="text"/>
                    <input class="password" name="password" type="password" onkeypress="return submitenter(this,event)"/>
                    <input class="hidden" type="hidden" name="utcoffset"  value="" />
                    <input class="hidden" type="hidden" name="todaysdate"  value="" />
                    <input id="checkbox" name="AUTOLOGIN" type="checkbox" onclick="autoLoginWarning()" ><span>&nbsp;Enable Auto Login for this Computer</span>
                    <input id="submit"  type="image" src="/jforum/templates/iracing/images/login/submit.gif"  value="" onclick="submitLoginForm()" onmouseover="javascript:this.src='/jforum/templates/iracing/images/login/submitHover.gif';" onmouseout="javascript:this.src='/jforum/templates/iracing/images/login/submit.gif';" onmousedown="javascript:this.src='/jforum/templates/iracing/images/login/submitActive.gif';" />
                </form>
                
                <script type="text/javascript">
                    $(document).ready(function() {
                        document.LOGIN.username.focus();
                        var offset = new Date().getTimezoneOffset();
                        document.LOGIN.utcoffset.value = offset;
                    });
                </script>
                
                <span><a href="/membersite/recoverpassword.jsp"">Recover Password</a> | <a href="/membersite/SubscriptionChoices.do">Sign Up</a></span>
 
            </div>
            
            
 
            <div id="copyright">
            
                Copyright&copy; <script>document.write(new Date().getFullYear());</script> iRacing.com&trade; Motorsport Simulations, LLC. All Rights Reserved<br />
                <a href="javascript:openTermsWin('/membersite')">Terms of Use and End User License Agreement</a> | <a href="javascript:openPrivacyWin('/membersite')" >Privacy Policy</a>
            
            </div>
            
            <script type="text/javascript">
                var contextpath="/jforum";
                var imageserver="";
            </script>
        </div>
        <script type="text/javascript">
            var url = document.location.href;
            if(url.indexOf("http:")==0){
                url = "https"+url.substring(4,url.length);
                document.location.href = url;
            }
        </script>
        <script type="text/javascript">
            function submitenter(myfield,e){
                var keycode;
                if (window.event) keycode = window.event.keyCode;
                else if (e) keycode = e.which;
                else return true;
                if (keycode == 13){
                    myfield.form.submit();
                    return false;
                }else return true;
            }
        </script>
    </body>
 
 </html>


Ik vind dit een vreemde melding, het gaat helemaal niet om een browser maar om een simpele HTTP request met behulp van AsyncHttpClient of DefaultHttpClient (meer later). Waarmee bepaald de website dat er geen Javascript draait? Ik neem aan dat dit met de cookies bepaald wordt, en blijkbaar komen die niet goed mee..?

Het vreemde is nou dat dit op Wifi wel vaak werkt, en mensen op 3G / mobiele connecties vaak problemen hebben. Dit is ook niet altijd waar, er komen ook meldingen binnen waar het op wifi mis gaat, dus dit kan toeval zijn.

Nog vreemder is het dat het voor de meeste gebruikers gewoon werkt, en een handjevol mensen blijven maar problemen hebben. Ook heb ik gebruikers die me wilden helpen met wat meer testjes die na een week of wat van constant problemen ineens geen problemen meer hebben en waar alles nu alweer maanden zonder problemen werkt, zonder ook maar iets te veranderen.

Ik snap er niks meer van... Wat zou hier mis kunnen gaan? Zou het met proxies te maken kunnen hebben ofzo, misschien doen mobiele providers iets vaags met de connectie van sommige mensen?


Dit is in de basis van de code die ik gebruik, er zijn twee versies, ik begon met de DefaultHttpClient (ook geprobeerd de AndroidHttpClient te gebruiken wat in principe dezelfde code is), en toen ik daar niets kon vinden heb ik alles herschreven om gebruik te maken van de AsyncHttpClient. Daar lijkt het beter mee te gaan maar er zijn nog steeds problemen.


DefaultHttpClient:

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
    public final static String USER_AGENT = "User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; .NET CLR 3.5.21022)";
    public final static String ACCEPT = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-ms-application, application/vnd.ms-xpsdocument, application/xaml+xml, application/x-ms-xbap, application/x-shockwave-flash, */*";

        private static BasicCookieStore cookieStore;
        public static BasicCookieStore getCookieStore()
        {
            if (cookieStore == null) cookieStore = new BasicCookieStore();
            return cookieStore;
        }

    public String sendRequest(String url, Params param, int method)
    {
        try
        {
                    DefaultHttpClient httpClient = new DefaultHttpClient();

                    // Define parameters
                HttpParams httpParams = httpClient.getParams();
                HttpConnectionParams.setConnectionTimeout(httpParams, TIMEOUT);
                HttpConnectionParams.setSoTimeout(httpParams, TIMEOUT);
                    HttpProtocolParams.setVersion(httpParams, HttpVersion.HTTP_1_1);
                    HttpClientParams.setRedirecting(httpParams, true);

            // Create HTTP request object (get/post)
            HttpRequestBase http;
            HttpContext localContext = new BasicHttpContext();

            // Choose between GET / POST
            if (method == POST)
            {
                // Create HTTP POST and set parameters
                http = new HttpPost(url);
                if (param != null)
                {
                    JSONObject json = param.toJson();
                    HttpEntity bodyEntity = new StringEntity(json.toString(), "utf8");
                    ((HttpPost)http).setEntity(bodyEntity);
                }

                http.addHeader("Accept", ACCEPT);
                http.addHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
                
            }
            else // GET
            {
                if (param != null)
                {
                    // Append parameters to URL and create HTTP GET
                    url = param.appendToUrl(url);
                }
                http = new HttpGet(url);
            }

            http.addHeader("Accept", ACCEPT);


            // Attach cookiestore
            localContext.setAttribute(ClientContext.COOKIE_STORE, getCookieStore());


                // Get a response
                    HttpResponse response;
                    try
                    {
                        response = httpClient.execute(http, localContext);
                    }
                    catch (ConnectTimeoutException ex)
                    {
                        throw new TimeoutException();
                    }

            HttpEntity entity = response.getEntity();

            String result = null;
            if (entity != null)
            {
                InputStream instream = entity.getContent();
                BufferedReader reader = new BufferedReader(new InputStreamReader(instream));
                StringBuilder sb = new StringBuilder();

                String line = null;
                while ((line = reader.readLine()) != null)
                    sb.append(line + "\n");

                result = sb.toString();
                instream.close();
            }

            http.abort();
                    //httpClient.close();

            return result;
        }
        catch (Exception ex)
        {
            Log.e(Constants.TAG, "Error during web request:\n" + ex.toString());
            return null;
        }
       }



AsyncHttpClient:
Deze werkt async maar dat had ik zelf al ingebouwd op mijn eigen manier dus ik heb hem weer 'synced' gemaakt op misschien een beetje vreemde manier met CountDownLatch.await, maar dat zal niet het probleem zijn.

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
    public static AsyncHttpClient getClient()
    {
        AsyncHttpClient client = new AsyncHttpClient();
        client.getHttpClient().getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
        return client;
    }

    private String sendRequest(String url, Params param, int method) throws Exception
    {
        AsyncHttpClient client = getClient();

    // Set cookiestore
        client.setCookieStore(getCookieStore());
        client.setTimeout(TIMEOUT);
        client.setUserAgent(USER_AGENT);

        AwaitResponseHandler handler = new AwaitResponseHandler();
        boolean completed;
        if (method == NetworkMethod.GET)
        {
            RequestParams p = new RequestParams();
            if (param != null) p = param.toRequestParams();

            client.get(url, p, handler);
            completed = handler.latch.await(TIMEOUT, TimeUnit.MILLISECONDS);
        }
        else
        {
            HttpEntity entity = null;
            if (param != null) entity = new StringEntity(param.toJson().toString(), "utf-8");

            client.post(context, url, entity, "application/json", handler);
            completed = handler.latch.await(TIMEOUT, TimeUnit.MILLISECONDS);
        }

        if (completed)
        {
            return handler.result;
        }
        else
        {
            throw new TimeoutException();
        }
    }


Om de code maar even snel samen te vatten, in beide gevallen maak ik eigenlijk een nieuwe Http Client aan, die geef ik een CookieStore mee en daarmee ga ik een GET of POST request doen. Die cookiestore zou dan 'automatisch' gevuld moeten worden en wordt herbruikt voor elke volgende request. De eerste request is dus een request naar de Login pagina, en als de credentials goed zijn komen er een set cookies mee welke de gebruiker authenticeren bij latere requests.


Ik weet het, flinke bak code, maar ik weet niet meer waar ik het moet zoeken. Aangezien alles in mijn eigen testjes en op mijn eigen mobiel prima werkt ben ik een beetje clueless...


Ik verwacht eigenlijk niet dat er iets echt fout is in de code, anders zou het niet werken voor het grootste deel van de gebruikers, maar misschien is er een kleinigheidje wat ik niet zie of niet vanaf weet?

Misschien dat jullie kunnen mee denken om me op de goeie richting te brengen want ik zit nu gewoon echt 100% vast :)

Bedankt!

Mijn iRacing profiel


  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Waar zet je in je defaulthttpclient je USER_AGENT?

Want ik vermoed dat je die nergens zet en dat er dus de default gepakt wordt.

Maar als je er echt niet uit komt, gewoon een android emulator starten en wireshark ertussen gooien...

P.s. waarom heb je bij een POST-request 2x een Accept-header nodig?

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
En wellicht wordt die melding dat JS vereist is met progressive enhancement verborgen en is dat niet de feitelijke melding en staar je je dus blind op een verkeerd probleem?

[edit]
Als ik naar https://members.iracing.com/membersite/login.jsp ga zie ik namelijk precies dezelfde paragraph met melding "JavaScript not enabled..." in de bron, maar niet op mijn scherm :Y)

[edit2]
D'oh, het staat zelfs in <noscript> tags 8)7 B)

Conclusie: je staart je blind op de verkeerde zaken :P Je probleem zit ergens anders :)

[ Voor 53% gewijzigd door RobIII op 12-09-2013 22:06 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • NickThissen
  • Registratie: November 2007
  • Laatst online: 18-11 13:07
Gomez12 schreef op donderdag 12 september 2013 @ 21:56:
Waar zet je in je defaulthttpclient je USER_AGENT?

Want ik vermoed dat je die nergens zet en dat er dus de default gepakt wordt.

Maar als je er echt niet uit komt, gewoon een android emulator starten en wireshark ertussen gooien...

P.s. waarom heb je bij een POST-request 2x een Accept-header nodig?
Ah, de USER_AGENT mist inderdaad in de DefaultHttpClient. Echter bij de AsyncHttpClient zet ik hem wel en die gaat ook vaak mis dus ik ga er even voor het gemak vanuit dat dat niet het probleem is.

De dubbele Accept is een foutje bij copy/pasten van de code en wat zooi weghalen, in de echte code staat hij er maar een keer (en een keer in comments).

Een emulator opstarten met wireshark; is dat nuttig denk je? Want zowel op een emulator als op mijn fysieke device werkt het elke keer prima. Dat is ergens jammer want zo wordt debuggen natuurlijk lastig... Ik zal het toch eens proberen (nooit gebruikt).
RobIII schreef op donderdag 12 september 2013 @ 22:01:
En wellicht wordt die melding dat JS vereist is met progressive enhancement verborgen en is dat niet de feitelijke melding en staar je je dus blind op een verkeerd probleem?
Dat zou best kunnen... Wat kan ik daar 'tegen doen'?


Wat me net binnen schiet is dat de login pagina na correcte login een redirect doet. Ik kom eigenlijk op een http 302 code pagina terecht die me doorstuurt naar het forum. Zou dit het probleem kunnen zijn? Misschien dat sommige devices dit niet snappen? Net als elke andere conclusie die ik kan trekken vind ik dit toch vreemd, waarom werkt het wel bij mij maar niet bij iedereen?

Mijn iRacing profiel


  • Pizzalucht
  • Registratie: Januari 2011
  • Laatst online: 15:03

Pizzalucht

Snotneus.

Wat doet het forum met de sessies? Zijn deze ip/subnet gebonden?
Mogelijk wordt de sessie gedropped op het moment dat iemand van netwerk switched.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
NickThissen schreef op donderdag 12 september 2013 @ 22:07:
Dat zou best kunnen... Wat kan ik daar 'tegen doen'?
Niets. En waarom zou je want 't is totaal niet relevant voor je probleem...

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • NickThissen
  • Registratie: November 2007
  • Laatst online: 18-11 13:07
Pizzalucht schreef op vrijdag 13 september 2013 @ 00:23:
Wat doet het forum met de sessies? Zijn deze ip/subnet gebonden?
Mogelijk wordt de sessie gedropped op het moment dat iemand van netwerk switched.
Wat bedoel je precies met van netwerk switchen? Ik merk wel dat het vaak fout gaat als ik van wifi naar 3G schakel of andersom, dan moet ik even opnieuw inloggen, maar als ik alleen wifi of alleen 3G gebruik gaat het gewoon altijd goed, ook als ik in de trein zit bijvoorbeeld waar ik waarschijnlijk wel meerdere keren switch van G naar 3G naar H etc...
RobIII schreef op vrijdag 13 september 2013 @ 00:32:
[...]

Niets. En waarom zou je want 't is totaal niet relevant voor je probleem...
Ik begreep uit je post dat het echte probleem 'verborgen' was door deze pagina, wat ik dus eigenlijk bedoel is: hoe kan ik de echte fout zien en niet deze pagina?

Deze pagina is gewoon letterlijk wat ik terug krijg als een gebruiker probeert in te loggen en het mis gaat. Als het goed gaat (zoals bij mezelf) krijg ik de main page van het forum.

Het javascript gebeuren staat inderdaad in noscript tags zie ik nu, lol... Lijkt erop dat hij me dus gewoon doorstuurd naar de login pagina. Dan weet ik helemaal niet meer waar het aan zou moeten liggen. Ik heb al lang gedacht over foute wachtwoorden ofzo maar dat kan het ook niet zijn (dan wordt je naar een andere pagina verwezen, en daarnaast werkt het voor deze mensen af en toe wel en af en toe niet met dezelfde credentials).

Mijn iRacing profiel


  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
NickThissen schreef op vrijdag 13 september 2013 @ 10:36:
[...]

Wat bedoel je precies met van netwerk switchen? Ik merk wel dat het vaak fout gaat als ik van wifi naar 3G schakel of andersom, dan moet ik even opnieuw inloggen, maar als ik alleen wifi of alleen 3G gebruik gaat het gewoon altijd goed, ook als ik in de trein zit bijvoorbeeld waar ik waarschijnlijk wel meerdere keren switch van G naar 3G naar H etc...
Zeker op 3G hebben sommige providers nog wel eens de neiging om meerdere inet-proxy's te hebben waarbij de gebruiker de ene seconde via proxy 1 en de volgende seconde via proxy 2 te werken.

Maar als het android is, en de mensen hebben er last van, waarom maak je dan niet een speciale app die extra debug info verstuurt (bijv elke request een extra request naar whatsmyip.org oid), stuur deze naar 1 van de mensen op en wacht op de logging die terugkomt.
[...]
Ik begreep uit je post dat het echte probleem 'verborgen' was door deze pagina, wat ik dus eigenlijk bedoel is: hoe kan ik de echte fout zien en niet deze pagina?

Deze pagina is gewoon letterlijk wat ik terug krijg als een gebruiker probeert in te loggen en het mis gaat. Als het goed gaat (zoals bij mezelf) krijg ik de main page van het forum.
Kijk eens wat je terugkrijgt voordat je ingelogd bent? Is dat niet simpelweg deze pagina?

Verwijderd

Ik begreep uit je post dat het echte probleem 'verborgen' was door deze pagina, wat ik dus eigenlijk bedoel is: hoe kan ik de echte fout zien en niet deze pagina?
Die pagina IS het loginscherm. Je gebruikers geraken niet ingelogd om whatever reden dus krijg je een redirect naar daar.

[ Voor 42% gewijzigd door Verwijderd op 13-09-2013 11:07 ]


  • Xynergy
  • Registratie: Mei 2010
  • Laatst online: 09-11 22:40
Het kan natuurlijk ook altijd dat je webserver sessies onderhoudt op basis van IP, de meeste frameworks hanteren dit principe om sidejacking ea. te vermijden. Als je omschakelt van 3G naar WiFi verandert je IP nu éénmaal en verloopt je sessie. Zou dit aan de basis van het probleem kunnen liggen?

  • Pizzalucht
  • Registratie: Januari 2011
  • Laatst online: 15:03

Pizzalucht

Snotneus.

Verder valt me dit op:

code:
1
2
var offset = new Date().getTimezoneOffset();
document.LOGIN.utcoffset.value = offset;


Ik zou zeggen: pak de code van je forum er eens bij en check even wat hij doet met de utcoffset waarde in combinatie met de sessie. Verder ook even checken wat het forum doet met IP/subnet locking op de sessie.

  • NickThissen
  • Registratie: November 2007
  • Laatst online: 18-11 13:07
Xynergy schreef op vrijdag 13 september 2013 @ 13:25:
Het kan natuurlijk ook altijd dat je webserver sessies onderhoudt op basis van IP, de meeste frameworks hanteren dit principe om sidejacking ea. te vermijden. Als je omschakelt van 3G naar WiFi verandert je IP nu éénmaal en verloopt je sessie. Zou dit aan de basis van het probleem kunnen liggen?
Het is niet mijn webserver waar het forum op draait, heb er geen controle over verder.

Het omschakelen van 3G naar Wifi en andersom is inderdaad ook een 'probleem' maar volgens mij niet het probleem waar ik naar zoek. Bij dat probleem kan ik namelijk gewoon lang werken op 3G en dan overschakelen naar Wifi (nieuwe login vereist), of andersom. Bij het probleem waar ik naar zoek kan men helemaal geen gebruik maken, de login gaat meteen de eerste keer fout, of ze dat nou op Wifi of op 3G doen (maar op 3G gaat het vaker fout). Heel soms werkt het wel een keertje, maar dan weer dagen lang niet.

Een andere gebruiker had dit probleem al weken lang en heeft me goed geholpen met logging enzo te draaien waar ik ook niet verder mee kwam. En toen ineens werkte de app wel weer en voor zover ik weet werkt hij nu al maanden zonder problemen. Het is vrij vreemd allemaal...
Pizzalucht schreef op vrijdag 13 september 2013 @ 13:29:
Verder valt me dit op:

code:
1
2
var offset = new Date().getTimezoneOffset();
document.LOGIN.utcoffset.value = offset;


Ik zou zeggen: pak de code van je forum er eens bij en check even wat hij doet met de utcoffset waarde in combinatie met de sessie. Verder ook even checken wat het forum doet met IP/subnet locking op de sessie.
Het is niet mijn forum, ik heb er geen controle over.

Wat hij doet met de utc offset weet ik zo snel niet, misschien gewoon bepalen in welke tijdzone tijden worden weergegeven? Als ik handmatig inlog via m'n browser door naar de login URL te gaan en verschillende utc offsets meegeef veranderd er niets voor zover ik kan zien:
code:
1
https://members.iracing.com/jforum/Login?username=<mijn username>&password=<mijn password>&utcoffset=-360


En kwa IP/subnet locking, dat klinkt allemaal wel alsof het voor problemen kan zorgen, maar dan meer voor problemen waarbij het even kort werkt en daarna niet meer (wanneer je IP veranderd is). Maar het werkt dus (voor veel gebruikers) gewoon helemaal niet, ook niet bij hun eerste poging, ook niet na herstarten van het device, opnieuw installeren van de app, etc.

Mijn iRacing profiel

Pagina: 1