Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
取得使用者帳號的服務區
伺服器:ServicePortal
目的:藉以查詢使用者所屬服務區。透過此 API,將依使用者 ID 查詢所屬服務區域中服務匣道伺服器 (ServiceGateway) 位址;透過 ServiceGateway 取得授權並取得服務區域內各服務伺服器位址後,才能進行其他 API 操作。
POST /member/requestservicegateway/
Input
Code Block | ||
---|---|---|
| ||
<!--?xml version="1.0" encoding="utf-8" ?-->
<requestservicegateway>
<userid>{ User ID }</userid>
<service>[ 1 ]</service>
</requestservicegateway> |
Output
Code Block | ||
---|---|---|
| ||
<!--?xml version="1.0" encoding="utf-8" ?-->
<requestservicegateway>
<status>{ Status Code }</status>
<servicegateway>{ ServiceGateway的host:port。例如:192.168.1.20:8080 }</servicegateway>
</requestservicegateway> |
回傳的狀態碼(Status Code)
狀態碼
狀態描述
0
Success。
2
Authentication Fail。
999
General Error。
使用者帳號密碼身份認證
伺服器:ServiceGateway
目的:接受客戶端認證的要求,透過使用者帳號、密碼的驗證,以取得授權金鑰 (Token),並回傳此 Service Area 中各 Server 的位址,以進行其他 API 的操作。
/member/acquiretoken/ 這個 API 會給予客戶端一個在後續執行任何 API 時,用來驗證用戶身份所必須的 Token。除此之外,另一個重要的功能是提供所在之 Service Area 內各種伺服器的位置資訊給客戶端。
目前計有下列數種伺服器的位置會透過這個 API 回傳給客戶端程式:InfoRelay:在 Payload 中以<inforelay>表示,記錄 InfoRelay IP 位址與埠號。支援檔案、目錄的新增、刪除和修改名稱…等,處理無關檔案實體內容異動的作業。
WebRelay:在 Payload 中以<webrelay>表示,記錄 WebRelay IP 位址與埠號。提供了檔案上傳下載相關的服務。
Search Server:在 Payload 中以<searchserver>表示,記錄 Search Server IP 位址與埠號。支援檔案、目錄名稱的搜尋。
開發者授權傳送規格:
在 Cookie 中指定 sid 欄位, Cookie 中的
sid
必須為小寫英文字母。在 Header 中必須帶入 Authorization Header ,包含 signature_method、timestamp、nonce 以及 signature 四個參數:
nonce:唯一且僅有的亂數,此值在60分鐘內不可重覆出現相同的值。
signature_method:hash 的方式,目前提供以 HMAC-SHA1 演算法做 Hash。
timestamp:從1970/01/01 00:00:00到現在為止的毫秒數。
signature:將上述三參數,依字母排列規格以 Query String 方式串接後做 URLEncode,再以 ProgKey 為 Key 值,進行指定 signature_method 的 Hash 演算,再將 Hash 過的字串加以, Base64 的轉換,最後再將 Base64 後的結果,再進行一次, URLEncode 的字串,即為 signature 字串。
Info |
---|
※ 上述細節可參考 OAuth 實作規則中各參數內容的設定方式。 |
系統會透過指定的 signature_method,將以上三參數串接並演算後與 signature 比對,若發現內容不相等,則會得到 Status = 5 的錯誤代碼。
Info |
---|
URLEncode 後的結果字串中,所有16進位的英文字 (A~F) 都必須為大寫,否則進行 Hash 後的結果會有所不同。 |
POST /member/acquiretoken/
Input
Code Block | ||
---|---|---|
| ||
<!--?xml version="1.0" encoding="utf-8" ?--> <aaa> <userid>{ User ID }</userid> <symmetrypwd>{ 使用者密碼經 Triple DES 加密後的字串 }</symmetrypwd> <time>{ time stamp, this is for scramble the payload }</time> </aaa> |
Output
Code Block | ||
---|---|---|
| ||
<!--?xml version="1.0" encoding="utf-8" ?--> <aaa> <status>{ Status Code }</status> <token>{ token }</token> <!-- 以下 IP:PORT 資料,不填寫 PORT 時預設值為 80 --> <inforelay>{ InfoRelay 的 IP:PORT Ex: 192.168.1.201:8081 }</inforelay> <webrelay>{ WebRelay 的IP:PORT }</webrelay> <searchserver>{ Search Server 的IP:Port }</searchserver> <package> <id>{ Package ID }</id> <display>{ EeePC-20G }</display><!-- package name --> <capacity>{ 容量大小。Ex:2000 }</capacity><!-- 計量單位 MB --> <uploadbandwidth>{ 頻寬。Ex:128 }</uploadbandwidth><!-- 計量單位 KB --> <downloadbandwidth>{ 頻寬。Ex:128 }</downloadbandwidth><!-- 計量單位 KB --> <upload>{ Ex:128 }</upload><!-- 計量單位 MB --> <download>{ Ex:128 }</download><!-- 計量單位 MB --> <concurrentsession>{ # 幾個 session(數值) }</concurrentsession> <maxfilesize>{ 數值 }</maxfilesize><!-- 單位為 MB --> <hasencryption>[ 0 | 1 ]</hasencryption> <expire>{ 到期日(格林威治時間),yyyy-MM-dd HH:mm:ss }</expire> <maxbackuppc>{ 備份電腦數上限 }</maxbackuppc> </package> <!-- 當 Status Code 為 504、508 時表示必須使用 Auxiliary Password 驗證 --> <auxpasswordurl>{ 若為 OTP 則此欄為空字串 | 若為 CAPTCHA 則此欄為圖型驗證碼的 URL(網址經過URL encoded) }</auxpasswordurl> <time>{ time stamp, this is for different the payload }</time> </aaa> |
回傳的狀態碼(Status Code)
狀態碼 | 狀態描述 |
---|---|
0 | Success。 |
2 | User Authentication Fail。 |
5 | Developer Authentication Fail。sid 不存在或 ProgKey 驗證失敗。 |
504 | OTP 認證失敗。也就是輸入的 User ID / password / OTP 不正確或須使用 OTP 認證卻未輸入 OTP。 |
505 | OTP 服務的 Credential ID 處於 LOCKED 狀態。 |
508 | CAPTCHA 認證失敗,或密碼輸入錯誤次數已超過系統設定值,使用者必須輸入 CAPTCHA,進行驗證。 |
999 | General Error。 |
Info |
---|
MD5 編碼注意事項若您的 MD5 編碼未經過十六進制轉換,請務必在 MD5 編碼過後,再以十六進位轉換。十六進位所使用的「a,b,c,d,e,f」字母須為小寫。 |
Table of Contents | ||||
---|---|---|---|---|
|
Panel | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
需要更了解 Authorization Header 製作嗎? 或許你可以參考以下指引:
|