W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
會話表示用戶登錄到設(shè)備的實例。用戶登錄或注冊時會自動創(chuàng)建會話。當用戶注銷時,它們會被自動刪除。每個用戶安裝對都有一個不同的 ?Session
?對象;如果用戶從他們已經(jīng)登錄的設(shè)備發(fā)出登錄請求,則該用戶先前用于該安裝的 ?Session
?對象將被自動刪除。 ?Session
?對象存儲在 Moralis 的 ?Session
?類中,您可以在 ?Moralis Dashboard Data Browser
? 上查看它們。我們提供了一組 API 來管理您應用中的 ?Session
?對象。
?Session
?是 Moralis 對象的子類,因此您可以像在 Moralis 上操作普通對象一樣查詢、更新和刪除會話。因為 ?Moralis Server
? 在您登錄或注冊用戶時會自動創(chuàng)建會話,所以您不應手動創(chuàng)建 ?Session
?對象,除非您正在構(gòu)建“?Moralis for IoT
?”應用程序(例如 ?Arduino
?或 ?Embedded C
?)。刪除會話將使用戶退出當前正在使用此會話令牌的設(shè)備。
與其他 Moralis 對象不同,?Session
?類沒有云代碼觸發(fā)器。因此,您不能為 ?Session
?類注冊 ?beforeSave
?或 ?afterSave
?處理程序。
Session 對象具有以下特殊字段:
sessionToken
?(只讀):用于對 ?Moralis API
? 請求進行身份驗證的字符串令牌。在 ?Session
?查詢的響應中,只有您當前的 ?Session
?對象將包含一個會話令牌。user
?:(只讀)指向此會話所針對的用戶對象的指針。createdWith
?(只讀):有關(guān)如何創(chuàng)建此會話的信息(例如 ?{ "action": "login", "authProvider": "password"}
?)。action
?可以有這些值:?login
?、?signup
?、?create
?或 ?upgrade
?。創(chuàng)建操作是開發(fā)人員通過保存 ?Session
?對象手動創(chuàng)建會話。升級操作是當用戶從舊會話令牌升級到可撤銷會話時。authProvider
?可以有這些值:?password
?、?anonymous
?、?facebook
?或 ?twitter
?。expiresAt (readonly)
?: 自動刪除此 ?Session
?對象的大約 ?UTC
?日期。您可以在應用程序的 ?Moralis Dashboard
? 設(shè)置頁面中配置會話過期設(shè)置(1 年不活動過期或無過期)。installationId
?(只能設(shè)置一次):表示會話登錄的安裝的字符串。對于 ?Moralis SDK
?,該字段將在用戶登錄或注冊時自動設(shè)置。installationId
?外的所有特殊字段只能由 ?Moralis Server
? 自動設(shè)置。您可以將自定義字段添加到 ?Session
?對象,但請記住,任何已登錄的設(shè)備(帶有會話令牌)都可以讀取屬于同一用戶的其他會話
對于可撤銷會話,如果從 Moralis 服務器中刪除了相應的會話對象,則當前會話令牌可能會變得無效。 如果您實現(xiàn)允許用戶從其他設(shè)備注銷的會話管理器 UI,或者如果您通過云代碼、REST API 或數(shù)據(jù)瀏覽器手動刪除會話,則可能會發(fā)生這種情況。 由于自動過期(如果在應用程序設(shè)置中配置),會話也可能被刪除。 當設(shè)備的會話令牌不再對應于 Moralis 服務器上的會話對象時,來自該設(shè)備的所有 API 請求都將失敗,并顯示“?Error 209:invalid session token
?”。
要處理此錯誤,我們建議編寫一個由所有 Moralis 請求錯誤回調(diào)調(diào)用的全局實用函數(shù)。 然后,您可以在此全局函數(shù)中處理“無效會話令牌”錯誤。 您應該提示用戶再次登錄,以便他們可以獲得新的會話令牌。 此代碼可能如下所示:
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 服務器中創(chuàng)建一個新的不受限制的 ?Session
?對象。 注冊和 Facebook/Twitter 登錄也是如此。
您可以為 ?Session
?類配置類級別權(quán)限 (?CLP
?),就像 Moralis 上的其他類一樣。 ?CLP
?通過 ?Session API
? 限制會話的讀取/寫入,但不限制 ?Moralis Server
? 在用戶登錄、注冊和注銷時自動創(chuàng)建/刪除會話。 我們建議您禁用應用程序不需要的所有 ?CLP
?。 以下是會話 ?CLP
?的一些常見用例:
Find、Delete
? - 用于構(gòu)建 UI 屏幕,允許用戶在所有設(shè)備上查看他們的活動會話,并在其他設(shè)備上注銷會話。 如果您的應用沒有此功能,您應該禁用這些權(quán)限。
Create
?- 對于從手機應用程序為其他設(shè)備提供用戶會話的應用程序很有用。 在為移動和 Web 構(gòu)建應用程序時,您應該禁用此權(quán)限。 對于 ?IoT
?應用程序,您應該檢查您的 ?IoT
?設(shè)備是否確實需要訪問用戶特定的數(shù)據(jù)。 如果沒有,那么您的 ?IoT
?設(shè)備不需要用戶會話,您應該禁用此權(quán)限。
Get、Update、Add Field
?——除非您需要這些操作,否則您應該禁用這些權(quán)限。Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: