應(yīng)答”方式(challenge-r..."/>
溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

接口規(guī)范 2. 登錄認(rèn)證

發(fā)布時(shí)間:2020-07-02 20:48:40 來(lái)源:網(wǎng)絡(luò) 閱讀:786 作者:sendoffice 欄目:開發(fā)技術(shù)

2.登錄認(rèn)證

客戶端調(diào)用流媒體服務(wù)器接口,首先要做的是身份認(rèn)證,認(rèn)證通過(guò)后才可以調(diào)用流媒體服務(wù)器的接口。
服務(wù)器和客戶端通過(guò)“挑戰(zhàn)->應(yīng)答”方式(challenge-response)進(jìn)行身份認(rèn)證交互,在這個(gè)過(guò)程中,客戶端需要調(diào)用兩次接口向服務(wù)器證明身份。認(rèn)證過(guò)程中不需要傳遞密碼,密碼用于簽名驗(yàn)證。
身份認(rèn)證的過(guò)如下:
1)客戶端使用“用戶名”作為參數(shù)調(diào)用“l(fā)ogin1”接口,向服務(wù)器發(fā)出身份認(rèn)證請(qǐng)求
1.1)服務(wù)器確認(rèn)用戶是否是有效的用戶:
1.2)若不是,則不做進(jìn)一步處理,返回錯(cuò)誤信息
1.3)若是,服務(wù)器產(chǎn)生一個(gè)“隨機(jī)數(shù)(挑戰(zhàn)字符串)”發(fā)送給客戶端
2)客戶端使用“用戶密碼”和“隨機(jī)數(shù)(挑戰(zhàn)字符串)”作為輸入,按約定的算法生成一個(gè)hash值,用該hash值作為 調(diào)用“l(fā)ogin2”接口的參數(shù),請(qǐng)求login2接口。
2.1)服務(wù)器用收到的hash值與自己的計(jì)算結(jié)果比較,若二者相同,則通過(guò)認(rèn)證;否則,認(rèn)證失敗
2.2)若認(rèn)證通過(guò),服務(wù)器返回“token”給客戶端,否者返回錯(cuò)誤信息。

2.1.login1接口

  • 用途
    客戶端向服務(wù)器申請(qǐng)進(jìn)行身份認(rèn)證,服務(wù)器返回“挑戰(zhàn)字符串”給客戶端。
  • 請(qǐng)求
    userAuth/?request=login1&username=admin
    username 登錄服務(wù)器的用戶名。
  • 響應(yīng)
    {
    "code":0,
    "err_desc":"auha3gik9m48l1mh"
    }

    code 等于0,表示用戶有效,此時(shí) err_desc 的內(nèi)容是返回的挑戰(zhàn)字符串(challenge_code)。
    code 不等于0,其他值表示錯(cuò)誤,此時(shí) err_desc 的內(nèi)容是錯(cuò)誤描述。
    返回的挑戰(zhàn)字符(challenge_code)串用于下一步認(rèn)證。

2.2.login2接口

  • 用途
    對(duì)login1接口返回“挑戰(zhàn)字符串”進(jìn)行hash運(yùn)算,將運(yùn)算結(jié)果提交給服務(wù)器,進(jìn)行身份合法性認(rèn)證。
  • 請(qǐng)求
    userAuth/?request=login2&username=admin&hash=8c96202be3da1b23a96c4c838eb34d93
    username 登錄服務(wù)器的用戶名。
    hash是使用用戶密碼和挑戰(zhàn)字符串作為輸入計(jì)算出的md5摘要值(hash),算法如下:
    hash=md5(md5(password)+challenge_code)
    算法描述:首先計(jì)算出密碼的hash值,然后在生成的密碼hash值尾部拼接上挑戰(zhàn)字符串形成新的字符串,最后計(jì)算這個(gè)新字符串的hash值。
    hash算法采用md5算法,生成的摘要采用16進(jìn)制編碼,編碼生成的字符采用小寫字母。
    例如,字符串111111的hash值是 96e79218965eb72c92a549dd5a330112
  • 響應(yīng)
    {
    "code":0,
    "err_desc":"g2ow17rfyf4nxbkg"
    }

    code 0 表示登錄成功,此時(shí) err_desc 的內(nèi)容是token值,用于后續(xù)接口的通信認(rèn)證。
    code >0 其他值表示錯(cuò)誤,此時(shí) err_desc 的內(nèi)容是錯(cuò)誤描述。

2.3.logout接口

  • 用途
    退出登錄,服務(wù)器銷毀用戶登錄信息,作廢“token”。
    建議客戶端在退出系統(tǒng)時(shí)總是調(diào)用該接口。
  • 請(qǐng)求
    userAuth/?request=logout&token=vvkphp5ca79c538n
  • 響應(yīng)
    {
    "code":0,
    }
向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI