簡體   English   中英

使用parse.com驗證會話令牌時出現意外行為

[英]Unexpected behavior when validating a session token using parse.com

我正在嘗試使用parse.com作為用戶管理器來構建一個簡單的應用程序。

我想從客戶端登錄到parse.com,並使用用戶的會話令牌調用我的node.js服務器(我將其添加為cookie)。 在服務器端,我將驗證會話(使用https://parse.com/docs/rest#users-validating ),並僅在會話有效時才允許訪問。

例如(在我的服務器中):

app.get('/api', function(req, res, next) {
     var token = getTokenFromRequest(req);
     if(tokenIsValid(token)) {
         next();
     } else { // Redirect... } 
});

app.get('/api/doSomething', function(req, res) {
  // Do something....
});

但是, 即使用戶注銷 (似乎返回“無效會話”),REST API用戶驗證似乎也會返回該用戶。 這是REST API用戶驗證中的錯誤嗎? 我究竟做錯了什么? 有更好的方法嗎?

謝謝!

通過REST,實際上沒有會話的概念。 REST調用是無狀態的,這意味着/me中的(當前)用戶將從提供的令牌中序列化。 如果令牌與用戶相關聯,它將返回該用戶的JSON表示,否則in返回錯誤。 一種或另一種方式調用是異步的,因此您不能真正在if語句中使用它。

你可以做:

app.get('/api', function(req, res, next) {
     var token = getTokenFromRequest(req);
     serializeUserFromToken(token,function(err,parseResponse) {
        if(err) return next(err)
        if(parseResponse.code && parseResponse.code === 101){
            // called to parse succedded but the token is not valid
            return next(parseResponse);
        }
        // parseResponse is the current User.
        next();
     }); 
});

其中serializeUserFromToken發出使用X-Parse-Session-Token標頭字段中的令牌進行解析的請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM