2014-09-20 102 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'); 
    }