2016-06-10 52 views
2

的文檔:解析服務器user.getSessionToken()上<a href="https://parse.com/docs/js/api/classes/Parse.User.html#methods_getSessionToken" rel="nofollow"><code>Parse.User.getSessionToken</code></a>狀態沒有定義

返回會話令牌此用戶,如果用戶已經登錄,或者如果它是一個查詢的結果與主密鑰。否則,返回undefined。

我正在使用JS SDK。當我使用主密鑰創建並保存新用戶時,我可以在user.getSessionToken的回調中獲取會話令牌。這工作正常。

當我使用主鍵查詢用戶時,返回用戶,我嘗試以相同的方式獲取會話標記,並且它未定義。

我已確認該用戶有一個有效會話,但結果始終相同。

我試圖登錄查詢的用戶。

become()函數需要會話令牌。

任何幫助,將不勝感激。

謝謝!

回答

2

所以事實證明,創建並保存新的用戶生成一個會話令牌和一個人可以使用getSessionToken()在塊後保存到搶令牌:

//create newUser and save username/password 

return newUser.save(null, {userMasterKey:true}) 
    .then(function(user) { 
     var token = user.getSessionToken(); 
     //use that token 
}); 

查詢用戶,並試圖得到令牌但不會工作:

userQuery.first({useMasterKey:true}) 
    .then(function(user) { 
      if(user) 
      { 
       var token = user.getSessionToken(); 
       //token is null 
      } 

我正在做SSO登錄,並使用來自SAML服務器的令牌作爲解析用戶的用戶名。在我的移動客戶端用戶登錄到SSO服務器並向客戶端提供分析會話令牌後,我需要登錄到Parse。

對於現有的解析用戶,解決方案是查詢用戶,使用主密鑰將密碼更改爲隨機超級密碼,使用該新密碼登錄,然後獲取會話令牌並將其發送。

希望這可以幫助別人。

-1

對我而言,如果您作爲一個用戶登錄並使用masterKey查詢另一個用戶,那麼即使用戶當前已登錄並且擁有有效會話,也不會有會話令牌。

爲什麼你需要「成爲」該用戶?

爲什麼不只是做什麼查詢/更新您需要使用masterkey而不是「成爲」該用戶來做?

相關問題