2014-09-20 105 views
0

我正在使用会话存储来抓取我的访问令牌,当用户通过身份验证时,我在Instagram的末尾生成了我的URL。这在我的本地主机上不适用于我,请查看我创建的笔作为输出的示例。 http://codepen.io/anon/pen/eHGBf#access_token=12345.67890HTML5会话存储不起作用

这里是我使用的代码:

var token = window.location.hash.substr(1).split("="); 
var storeToken = token[1]; 

if (typeof(Storage) != 'undefined') { 
    sessionStorage.setItem('accessToken', storeToken); 
    document.getElementById('access_token').innerHTML = sessionStorage.getItem('accessToken'); 
} else { 
    document.getElementById('access_token').innerHTML = 'Sorry, your browser does not support Web Storage'; 
} 

,并显示访问令牌:当我刷新页面在我的本地(而不在URL访问令牌

<div id="access_token"></div> 

)或导航到其他页面并返回到已在ID中显示令牌的主页,它会返回“未定义”,我必须重新登录。我认为它应该拯救令牌? 任何帮助,不胜感激。

+0

它正在为我工​​作。你想要的输出是什么? – Cristy 2014-09-20 21:37:42

+0

对不起,我没有说清楚。当我刷新本地主机上的页面(URL中没有访问令牌)或导航到其他页面并返回到已在ID中显示令牌的主页时,它会返回“未定义”,我必须重新登录。我认为它应该拯救令牌? – 2014-09-20 21:40:02

+0

好吧,它确实保存了令牌,但要确保不要重写它(例如,在不想保存新令牌的页面上包含上述JavaScript)。否则,您可以检查'storeToken'是否已定义,如果未从'sessionStorage'中获取。 – Cristy 2014-09-20 21:45:15

回答

0
var token = window.location.hash.substr(1).split("="); 
    var storeToken = token[1]; 

    if (storeToken) { 
     sessionStorage.setItem('accessToken', storeToken); 
    } 

    if (sessionStorage.getItem('accessToken')) { 
     document.getElementById('access_token').innerHTML = sessionStorage.getItem('accessToken'); 
    }