可以把 AV.User._fetchUserBySessionToken 暴露出来吗?
目前好像没有这个方法,不过 有个公开的方法 AV.User.become(sessionToken) ,可以做同样的事情。不过需要注意的是 become 之后,这个 user 对象就会成为 currentUser。
在服务端用 User.become 方法不妥啊,我就想要一个验证 session token 是否正确且没有副作用的方法
最近刚增加了此方法:https://leancloud.github.io/javascript-sdk/docs/AV.User.html#isAuthenticated
Sorry,👆 的方法在 JS SDK 2.0.0 分支才可以使用,目前 master 分支并没有此方法。
这个方法还是没办法满足我的使用场景,这和 User.become 是一个性质的方法,服务端会有或已经有一个 currentUser 才行
确实现在没有好的办法验证 session token 有效并没有副作用,可以描述一下这个需求的具体场景,如果有普遍适用性的话可以考虑添加。
另外暂时可以使用 rest API 进行验证。
先抄了下你们 SDK 的代码绕过这个问题:
import AV from 'leancloud-storage';
import {request as AVRequest} from 'leancloud-storage/dist/node/request';
export const fetchUserBySessionToken = (token) => {
const user = AV.Object._create('_User');
return AVRequest(
'users',
'me',
null,
'GET', {
session_token: token
}
).then((response) => {
const attrs = user.parse(response);
user._finishFetch(attrs);
return user;
});
};