会话表示用户登录到设备的实例。用户登录或注册时会自动创建会话。当用户注销时,它们会被自动删除。每个用户安装对都有一个不同的 Session 对象;如果用户从他们已经登录的设备发出登录请求,则该用户先前用于该安装的 Session 对象将被自动删除。 Session 对象存储在 Moralis 的 Session 类中,您可以在 Moralis Dashboard Data Browser 上查看它们。我们提供了一组 API 来管理您应用中的 Session 对象。

创新互联公司专注于网站建设|成都网站维护公司|优化|托管以及网络推广,积累了大量的网站设计与制作经验,为许多企业提供了网站定制设计服务,案例作品覆盖成都展览展示等行业。能根据企业所处的行业与销售的产品,结合品牌形象的塑造,量身开发品质网站。
Session 是 Moralis 对象的子类,因此您可以像在 Moralis 上操作普通对象一样查询、更新和删除会话。因为 Moralis Server 在您登录或注册用户时会自动创建会话,所以您不应手动创建 Session 对象,除非您正在构建“Moralis for IoT”应用程序(例如 Arduino 或 Embedded C)。删除会话将使用户退出当前正在使用此会话令牌的设备。
与其他 Moralis 对象不同,Session 类没有云代码触发器。因此,您不能为 Session 类注册 beforeSave 或 afterSave 处理程序。
会话属性
Session 对象具有以下特殊字段:
-
sessionToken(只读):用于对 Moralis API 请求进行身份验证的字符串令牌。在 Session查询的响应中,只有您当前的 Session对象将包含一个会话令牌。 -
user:(只读)指向此会话所针对的用户对象的指针。 -
createdWith(只读):有关如何创建此会话的信息(例如 { "action": "login", "authProvider": "password"})。 -
action可以有这些值:login、signup、create或 upgrade。创建操作是开发人员通过保存 Session对象手动创建会话。升级操作是当用户从旧会话令牌升级到可撤销会话时。 -
authProvider可以有这些值:password、anonymous、facebook或 twitter。 -
expiresAt (readonly): 自动删除此 Session对象的大约 UTC日期。您可以在应用程序的 Moralis Dashboard 设置页面中配置会话过期设置(1 年不活动过期或无过期)。 -
installationId(只能设置一次):表示会话登录的安装的字符串。对于 Moralis SDK,该字段将在用户登录或注册时自动设置。
除
installationId 外的所有特殊字段只能由
Moralis Server 自动设置。您可以将自定义字段添加到
Session 对象,但请记住,任何已登录的设备(带有会话令牌)都可以读取属于同一用户的其他会话
处理无效会话令牌错误
对于可撤销会话,如果从 Moralis 服务器中删除了相应的会话对象,则当前会话令牌可能会变得无效。 如果您实现允许用户从其他设备注销的会话管理器 UI,或者如果您通过云代码、REST API 或数据浏览器手动删除会话,则可能会发生这种情况。 由于自动过期(如果在应用程序设置中配置),会话也可能被删除。 当设备的会话令牌不再对应于 Moralis 服务器上的会话对象时,来自该设备的所有 API 请求都将失败,并显示“Error 209:invalid session token”。
要处理此错误,我们建议编写一个由所有 Moralis 请求错误回调调用的全局实用函数。 然后,您可以在此全局函数中处理“无效会话令牌”错误。 您应该提示用户再次登录,以便他们可以获得新的会话令牌。 此代码可能如下所示:
function handleMoralisError(err) {
switch (err.code) {
case Moralis.Error.INVALID_SESSION_TOKEN:
Moralis.User.logOut();
// If web browser, render a log in screen
// If Express.js, redirect the user to the log in route
break;
// Other Moralis API errors that you want to explicitly handle
}
}
// For each API request, call the global error handler
query.find().then(function() {
// do stuff
}, function(err) {
handleMoralisError(err);
});
会话安全
会话对象只能由用户字段中指定的用户访问。 所有 Session 对象都有一个只能由该用户读写的 ACL。 您无法更改此 ACL。 这意味着查询会话将仅返回与当前登录用户匹配的对象。
当您通过用户登录方法登录用户时,Moralis 将自动在您的 Moralis 服务器中创建一个新的不受限制的 Session 对象。 注册和 Facebook/Twitter 登录也是如此。
您可以为 Session 类配置类级别权限 (CLP),就像 Moralis 上的其他类一样。 CLP 通过 Session API 限制会话的读取/写入,但不限制 Moralis Server 在用户登录、注册和注销时自动创建/删除会话。 我们建议您禁用应用程序不需要的所有 CLP。 以下是会话 CLP 的一些常见用例:
-
Find、Delete - 用于构建 UI 屏幕,允许用户在所有设备上查看他们的活动会话,并在其他设备上注销会话。 如果您的应用没有此功能,您应该禁用这些权限。 -
Create- 对于从手机应用程序为其他设备提供用户会话的应用程序很有用。 在为移动和 Web 构建应用程序时,您应该禁用此权限。 对于 IoT应用程序,您应该检查您的 IoT设备是否确实需要访问用户特定的数据。 如果没有,那么您的 IoT设备不需要用户会话,您应该禁用此权限。 -
Get、Update、Add Field——除非您需要这些操作,否则您应该禁用这些权限。
本文标题:创新互联Moralis教程:Moralis会话
URL分享:http://www.jxjierui.cn/article/dhdphgi.html


咨询
建站咨询
