<div dir="ltr">Do you have a suggested approach to handling this? Prompt the user that they should turn off private browsing on their Iphone?</div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jan 30, 2015 at 2:48 AM, Stian Thorgersen <span dir="ltr"><<a href="mailto:stian@redhat.com" target="_blank">stian@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Only option would be to disable state verification, which could leave it open to CSRF.<br>
<div><div class="h5"><br>
----- Original Message -----<br>
> From: "Dean Peterson" <<a href="mailto:peterson.dean@gmail.com">peterson.dean@gmail.com</a>><br>
> To: <a href="mailto:keycloak-user@lists.jboss.org">keycloak-user@lists.jboss.org</a><br>
> Sent: Monday, 26 January, 2015 12:34:26 AM<br>
> Subject: [keycloak-user] IPhone turns off local storage by default and that causes Keycloak.js to fail.<br>
><br>
> IPhones are in private mode by default. When in private mode, they do not<br>
> allow localstorage. Any application secured with the pure js keycloak file<br>
> fails. When I turn private mode off, the application works. Will Keycloak be<br>
> supporting IPhones with the pure javascript client in the future without<br>
> requiring users turn private mode off?<br>
><br>
> I get the following error in private mode. The highlighted code is what<br>
> causes the error:<br>
><br>
> QuotaExceededError: DOM Exception 22: An attempt was made to add something to<br>
> storage that exceeded the quota.<br>
><br>
> Jessicakc.createLoginUrl = function(options) {<br>
> var state = createUUID();<br>
><br>
> var redirectUri = adapter.redirectUri(options);<br>
> if (options && options.prompt) {<br>
> if (redirectUri.indexOf('?') == -1) {<br>
> redirectUri += '?prompt=' + options.prompt;<br>
> } else {<br>
> redirectUri += '&prompt=' + options.prompt;<br>
> }<br>
> }<br>
><br>
> sessionStorage.oauthState = state;<br>
><br>
> var url = getRealmUrl()<br>
> + '/tokens/login'<br>
> + '?client_id=' + encodeURIComponent(kc.clientId)<br>
> + '&redirect_uri=' + encodeURIComponent(redirectUri)<br>
> + '&state=' + encodeURIComponent(state)<br>
> + '&response_type=code';<br>
><br>
> if (options && options.prompt) {<br>
> url += '&prompt=' + options.prompt;<br>
> }<br>
><br>
> if (options && options.loginHint) {<br>
> url += '&login_hint=' + options.loginHint;<br>
> }<br>
><br>
> return url;<br>
> }<br>
><br>
><br>
><br>
</div></div>> _______________________________________________<br>
> keycloak-user mailing list<br>
> <a href="mailto:keycloak-user@lists.jboss.org">keycloak-user@lists.jboss.org</a><br>
> <a href="https://lists.jboss.org/mailman/listinfo/keycloak-user" target="_blank">https://lists.jboss.org/mailman/listinfo/keycloak-user</a><br>
</blockquote></div><br></div>