[英]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.