設備開啟加密登錄后,登錄流程與原登錄流程有所區別,需要進行兩次checkin,第一次用設備apikey獲取token,第二次用獲取到的token和用戶apikey進行加密登錄。
在設備編輯頁面開啟加密登錄后,登錄流程與原登錄流程有所區別,需要進行兩次checkin,第一次用設備apikey獲取token,第二次用獲取到的token和用戶apikey進行MD5加密登錄。整個登錄過程,用戶apikey是未暴露的,而token每次都是不一樣的,所以每次的登錄信息都不一樣,從而起到加密作用,具體流程如下:
{"M":"checkin","ID":"xx1","K":"xx2"}\n
說明:
M —— 固定(Method)
checkin —— 固定,登錄指令
ID —— 固定
xx1 —— 可變,設備ID,在會員中心查看
K —— 固定(apiKey)
xx2 —— 可變,設備apikey,在會員中心查看
返回結果:
{"M":"token","ID":"xx1","K":"xx2"}\n
說明: 登錄信息正確時返回,錯誤無任何返回,如果設備已登錄,也將無任何返回信息
M —— 固定(Method)
token —— 固定,服務器返回token命令
ID —— 固定
xx1 —— 可變,設備ID,在會員中心查看
K —— 固定(toKen)
xx2 —— 可變,服務器返回的token值,服務器隨機生成的的32位字符串,用于下一步加密登錄。
{"M":"checkin","ID":"xx1","K":"xx2"}\n
說明: 在上一步成功獲取token值之后,發送此命令進行登錄,保證在一分鐘內完成。
M —— 固定(Method)
checkin —— 固定,登錄指令
ID —— 固定
xx1 —— 可變,設備ID,在會員中心查看,需與第一步中的ID相同
K —— 固定(Key)
xx2 —— 可變,token與該設備所屬用戶apikey合并后的md5值,32位小寫字符串
md5(token值+用戶apikey),用戶apikey在個人信息頁面查看
返回結果(登錄信息正確時返回,錯誤無任何返回,如果設備已登錄,也將無任何返回信息,且不會登錄成功):
{"M":"checkinok","ID":"xx1","NAME":"xx2","T":"xx3"}\n
說明:
M —— 固定(Method)
checkinok —— 固定,設備登錄成功指令
ID —— 固定
xx1 —— 可變,設備登錄成功后,用于通訊的唯一ID,其組成為字符“D"+設備ID,如D24
NAME —— 固定
xx2 —— 可變,該設備的名稱
T —— 固定(time)
xx3 —— 可變,服務器發送信息時的時間戳,自從 Unix 紀元(格林威治時間 1970 年 1 月 1 日 00:00:00)到當前時間的秒數。
模擬測試教程參見:《設備加密登錄模擬測試教程》