目前是在Unity的Editor里、国际版leancloud开发环境,SDK版本号不知道在哪里看。
注册、登录都可以成功。但重新在Editor里运行app时,以下代码得到的是null,每次都需要重新登录
var currentUser = await LCUser.GetCurrent();-
创建时间
21年3月31日
-
最后回复
21年4月10日
- 9
回复
- 70
浏览
- 2
用户
- 1
赞
- 2
链接
目前是在Unity的Editor里、国际版leancloud开发环境,SDK版本号不知道在哪里看。
注册、登录都可以成功。但重新在Editor里运行app时,以下代码得到的是null,每次都需要重新登录
var currentUser = await LCUser.GetCurrent();旧版是有的,新版目前是使用标准的 .net standard 2.0 实现的,所以没有 unity 相关的代码。
(不过最近在计划如何实现了)
1 请问Login或Signup如何得到session token呢
参考 这里 可以拿到 LCUser 的 SessionToken
2 ContinueWith由于不是主线程,很多Unity的API是无法使用的。
强烈建议使用 async/await 方式,一是在 await 之后还会切回主线程;二是可以避免嵌套太深,不容易阅读。
好的谢谢!
1 我记得旧版文档里用的都是ContinueWith,这样当出错时可以处理。如果用await的方式,参考那些Test代码,判断Login/Signup/BecomeWithSessionToken是否成功的方式是否如下?
LCUser current = await LCUser.GetCurrent();
if (current.ObjectId == null)
{
// 出错,需处理
}
else
{
// 成功
}
2 当Login/Signup/BecomeWithSessionToken按照问题1的方式判断成功后,是否还需要做bool isAuthenticated = await currentUser.IsAuthenticated();的判断?
错误处理参考
try {
LCUser user = await LCUser.Login("username", "password");
// 成功
} catch (LCException e) {
// LeanCloud 错误,如密码错误等,参考错误码
} catch (Exception e) {
// 其他错误,如网络异常
}
IsAuthenticated 的作用是检查 session token 是否有效,Login/Signup/BecomeWithSessionToken 成功后的 session token 一定有效的,不需要再判断。
后续支持了本地持久化 session token,可能需要 IsAuthenticated 判断
我们在 0.7.3 版本支持了 Unity 本地缓存登录用户数据功能