簡體   English   中英

SCORM Cloud + Angular 6

[英]SCORM Cloud + Angular 6

我正在建立我的角度應用程序和Rustica軟件提供的scorm cloud服務之間的通信。 我遵循了文檔 ,到目前為止,我得到了:

<rsp stat="fail">
    <err code="104" msg="The signature attached to the call does not match the signature generated on the server."/>
</rsp>

這是URL的示例: http : //cloud.scorm.com/api?method=rustici.registration.launch&appid=79V4XI0MTG&regid=1551368365666&redirecturl=closer&ts=20190228153925&sig=d6edc93e854d8e8276156759a84cc344

如文檔所述,這顯然與我使用MD5函數生成簽名參數的方式有關。

我很直覺這個問題與我生成時間參數(ts)的方式有關,我這樣做

TS: string = moment().add(5, 'hours').format('YYYYMMDDHHmmss');

如果有人做到了這一點,您能為我節省一些時間嗎?

我設法使用以下函數生成與服務器端生成的md5匹配的正確的md5字符串。

文檔是關於參數排序的明確文檔,因此此處是執行此功能的函數。

    sortByKey(params) {
        let sortedObj = {}
        Object.keys(params).sort().forEach((key) => sortedObj[key] = params[key])
        return sortedObj;
    }

稍后,您必須連接並添加SECRET_KEY並最終應用md5函數,如下所示...

    getSig(params, secretKey) {
        let sortedParams = this.sortByKey(params);
        let concatenated = '';
        Object.keys(sortedParams).forEach((key) => {
            concatenated += (key + sortedParams[key]);
        });

        let sigString = secretKey + concatenated;
        return md5(sigString);
    }

假設您有下一個參數,則過程如下

// 1. For the given parameters, you have to sort them
method=rustici.registration.launch
regid=1551362579253
ts=20190228140259 
appid=79V4XI0MTG 
redirecturl=blank

// 2. The sorting results in
appid=79V4XI0MTG
method=rustici.registration.launch
redirecturl=blank
regid=1551362579253
ts=20190228140259

請注意,ts參數的格式為(YYYYMMDDHHmmss)。 例如:20190228174550

// 3. Concatenate all sorted params
appid79V4XI0MTGmethodrustici.registration.launchredirecturlblankregid1551362579253ts20190228140259

// 4. Then prepend the secret_key to your concatenation
secret_key + appid79V4XI0MTGmethodrustici.registration.launchredirecturlblankregid1551362579253ts20190228140259

// 5. Finally apply md5 function
const sig = md5(secret_key + appid79V4XI0MTGmethodrustici.registration.launchredirecturlblankregid1551362579253ts20190228140259)

構造URL來發出請求,您應該一切順利。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM