使用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-验证),并且仅当会话有效时才允许访问。
例如(在我的服务器中):
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....
});
- tokenIsValid(token)函数应使用https://parse.com/docs/rest#users-验证
然而,REST API用户验证似乎会返回用户,即使用户已注销(预计会返回"无效会话")。这是REST API用户验证中的一个错误吗?我做错了什么?有更好的方法吗?
谢谢!
通过REST,实际上没有会话的概念。REST调用是无状态的,这意味着/me
的(当前)用户将从提供的令牌中序列化。如果令牌与用户相关联,它将返回该用户的JSON表示,否则将返回错误。无论如何,该调用是异步的,所以您不能在and 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
请求Parse,并在X-Parse-Session-Token
标头字段中使用令牌。
相关文章:
- React JS:未捕获(在承诺中)语法错误:在位置 0 的 JSON 中意外<令牌
- jQuery$.getJSON抛出意外令牌
- 为什么我在下面的..of循环中得到意外令牌
- 组件中的ReactJS意外令牌
- AngularJS $http GET 请求到本地 JSON 文件返回语法错误:意外令牌]
- 巴别塔,意外令牌 (15:33) ::.
- Sencha 2.0 和 Codeigniter RESTful API 生成未捕获的语法错误:意外令牌:
- 在事件上使用 jquery 时出现意外令牌
- JSON 中位置 4 处的意外令牌<
- 意外令牌 ) 在我的代码中
- Electron 和 Babel 6 异步/等待抛出意外令牌
- “JSON.parse(str)”返回“意外令牌c”,但str是一个字符串
- jQuery after() uncatch SyntaxError: 意外令牌 ILLEGAL
- 使用节点javascript的意外令牌ILLEGAL
- Javascript/JQuery-Chrome意外令牌
- Ajax 帖子未捕获语法错误:意外令牌非法
- angularjs-SyntaxError:请求从服务器返回时出现意外令牌
- jquery:使用ember的意外令牌C
- React本机项目中的意外令牌
- 解析有效的 JSON 得到“语法错误:意外令牌非法”