天天看點

iVX中的使用者鑒别與使用者資訊擷取1、使用者登入與擷取使用者資訊的基本原理2、資料庫中的“送出使用者”3、匿名使用者4、确認使用者的登入狀态

任何應用,隻要不是純展示類的,我們都需要鑒别目前通路的使用者。比如,使用者的登入之後,可以擷取到他個人的訂單資訊,可以檢視自己收藏的商品,或限制他的投票或抽獎次數等等。

1、使用者登入與擷取使用者資訊的基本原理

在iVX中,我們提供多種使用者登入的方法,比如,手機+密碼登入,郵箱+密碼登入,微信登入等等。無論是何種方式登入,使用者登入的基本流程和原理都是一樣的,如下圖所示:

iVX中的使用者鑒别與使用者資訊擷取1、使用者登入與擷取使用者資訊的基本原理2、資料庫中的“送出使用者”3、匿名使用者4、确認使用者的登入狀态

使用者登入成功之後,服務端除了傳回使用者資訊,也會同時向用戶端設定一個cookie(http only的cookie),用來存儲目前使用者的登入令牌(這個登入憑證是背景生成的一個随機字元串,對應目前使用者記錄,但不包含任何使用者資訊)。

在應用編輯中,我們隻需要調用使用者元件的登入動作即可,當然,根據使用者注冊的類型,可以發起各種不同類型的登入:

iVX中的使用者鑒别與使用者資訊擷取1、使用者登入與擷取使用者資訊的基本原理2、資料庫中的“送出使用者”3、匿名使用者4、确認使用者的登入狀态

有了這個登入令牌之後,下一次使用者打開應用之後,就可以直接通過這個令牌,來擷取使用者資訊,如下圖所示:

iVX中的使用者鑒别與使用者資訊擷取1、使用者登入與擷取使用者資訊的基本原理2、資料庫中的“送出使用者”3、匿名使用者4、确認使用者的登入狀态

這個登入令牌,會在使用者元件的“擷取目前使用者資訊”的動作中自動發送給背景服務端,我們隻需要在前端直接調用這個動作即可。

iVX中的使用者鑒别與使用者資訊擷取1、使用者登入與擷取使用者資訊的基本原理2、資料庫中的“送出使用者”3、匿名使用者4、确認使用者的登入狀态

是以,隻要使用者不手動清除cookie,使用者第一次登入之後,就可以自動擷取登入狀态,不需要再次添加使用者名密碼進行登入了。

2、資料庫中的“送出使用者”

使用者登入之後,使用者與背景資料庫的任意互動,都會帶上cookie中的使用者令牌,用來鑒别目前使用者,并将目前使用者的使用者名,記錄在資料表中的“送出使用者”字段中。(送出使用者是每個資料表的預設自帶字段,無法删除)

iVX中的使用者鑒别與使用者資訊擷取1、使用者登入與擷取使用者資訊的基本原理2、資料庫中的“送出使用者”3、匿名使用者4、确認使用者的登入狀态

這個送出使用者,即目前使用者的使用者名,由于ivx中使用者登入有多種方式,使用者名的格式也有多種形式。比如,使用者是通過小程式登入,那“送出使用者”中記錄的使用者名就是該使用者的微信openID。通常情況下,一個應用隻提供一種登入方式,是以所有的送出使用者也是統一格式的,但如果我們同時提供多種登入方式,那我們可能會得到以上混雜類型的送出使用者。

資料庫的送出使用者,可以用來按使用者進行過濾,比如輸入目前使用者送出的資訊(比如擷取個人訂單,個人曆史記錄等),隻需要在篩選條件中選擇送出使用者=“目前使用者”即可(目前使用者是個預設選項,可通過下拉菜單選中)

iVX中的使用者鑒别與使用者資訊擷取1、使用者登入與擷取使用者資訊的基本原理2、資料庫中的“送出使用者”3、匿名使用者4、确認使用者的登入狀态

另外,資料庫的送出限制,也是針對登入使用者進行判斷的:

iVX中的使用者鑒别與使用者資訊擷取1、使用者登入與擷取使用者資訊的基本原理2、資料庫中的“送出使用者”3、匿名使用者4、确認使用者的登入狀态

是以,如果同一個使用者更換了登入方式,比如同一個裝置用兩個微信賬号登入,那他的送出限制也會按新賬号的送出限制來計算

3、匿名使用者

如果使用者沒有進行任何形式的登入(即cookie中沒有任何登入令牌),就進行資料庫送出,系統将随機生成一個匿名使用者,這個匿名使用者也對應一個随機使用者名,當使用者進行資料庫送出時,這個随機使用者名将作為“送出使用者”存儲到資料庫中。

iVX中的使用者鑒别與使用者資訊擷取1、使用者登入與擷取使用者資訊的基本原理2、資料庫中的“送出使用者”3、匿名使用者4、确認使用者的登入狀态

是以,即使不進行使用者登入,我們直接在PC中預覽應用時,資料庫的送出限制依然生效,因為系統會自動生成一個随機使用者,隻要不手動清楚cookie,同一個浏覽器的随機使用者會一直保持一緻。

4、确認使用者的登入狀态

通常,我們在應用初始化的時候去判斷使用者目前是否已登入,即cookie中是否已存在使用者登入令牌,如果已存在,就直接擷取使用者資訊,如果不存在,則發起使用者登入來獲得令牌。如下圖所示:

iVX中的使用者鑒别與使用者資訊擷取1、使用者登入與擷取使用者資訊的基本原理2、資料庫中的“送出使用者”3、匿名使用者4、确認使用者的登入狀态

以微信登入為例,在事件面闆中以上邏輯的設定如下:

iVX中的使用者鑒别與使用者資訊擷取1、使用者登入與擷取使用者資訊的基本原理2、資料庫中的“送出使用者”3、匿名使用者4、确認使用者的登入狀态