2014-03-06 43 views
1

我正在製作儀表板並從SoundCloud API中提取一些信息。我對這個API相對比較陌生,並且我能夠將每個音軌的SoundCloud Widget列出。我的問題是,每次刷新時,我都會退出(我認爲)。即使用戶例如刷新頁面,會話仍然存在嗎?這是我現在所擁有的:JS:如何防止在SoundCloud API中登錄後每次刷新丟失會話

function connectToSoundCloud(){ 
     //INTIALIZE AUTH WITH SC 
     SC.initialize({ 
     client_id: sc_client_id, 
     redirect_uri: sc_redirect_uri 
    }); 
     //INITIATE AUTH POPUP 
      SC.connect(function() { 
    SC.get('/me', function(me) { 

     if (me.username) { 
      document.getElementById('btn-disconnectFromSoundCloud').style.display=""; 
      document.getElementById('btn-connectToSoundCloud').style.display="none"; 
     } 

     $.ajax({ 
      type: "GET", 
      url: "http://api.soundcloud.com/tracks.json?client_id="+sc_client_id+"", 
      error: function(result, status){ 
      }, 
      success: function(result, status){ 
         //CODE TO DISPLAY TRACKS HERE 
      } 
     }); 
    }); 
}); 
    } 

任何幫助表示讚賞。乾杯。

回答

0

你湊了jStorage?從here下載它。將jStorage.js文件導入到您的代碼中,並且您很好。 <script src="YOUR_FOLDER/jStorage.js"></script> 然後你可以存儲登錄的用戶是這樣的:每當你想獲取有關登錄的用戶信息

SC.connect(function() { 
SC.get('/me', function(me) { 
    $.jStorage.set('userInfo',me); // store the user to storage 
    console.log("Logged in userId: "+ me.id); 
    console.log('Logged in username: '+me.username); 
    location.reload(); // reloads the page 
    }); 

}); 

然後,只需使用:

var loggedInUser = $.jStorage.get('userInfo');

要退出,只是使用

$.jStorage.deleteKey('userInfo'); // delete the logged in user 
location.reload(); // reloads the page 
+0

這樣可以保存正在發送的用戶數據,但這樣做是否也確保它們已登錄?是否仍然上傳和評論功能? – theptrk