2017-05-08 1 views
2

Ich versuche eine gemeinsame Zugriffssignatur mit dem Azure Node SDK zu generieren, aber das zurückgegebene Token funktioniert nicht/es fehlen einige Parameter.Knoten azure blobService.generateSharedAccessSignature() gibt ein falsches Token zurück

Im Erstellen des Token mit:

app.get('/node-api/get-azure-token', (req, res, next) => { 
    var blobService = azure.createBlobService(myStorageAccount, myAccessKey); 
    var container = 'my-azure-container-name'; 
    var startDate = new Date(); 
    var expiryDate = new Date(startDate); 
    expiryDate.setMinutes(startDate.getMinutes() + 10); 
    startDate.setMinutes(startDate.getMinutes() - 5); 

    var sharedAccessPolicy = { 
    AccessPolicy: { 
     ServiceVersion: '2016-05-31', 
     Permissions: azure.BlobUtilities.SharedAccessPermissions.READ + azure.BlobUtilities.SharedAccessPermissions.WRITE + azure.BlobUtilities.SharedAccessPermissions.DELETE + azure.BlobUtilities.SharedAccessPermissions.LIST + azure.BlobUtilities.SharedAccessPermissions.ADD + azure.BlobUtilities.SharedAccessPermissions.CREATE, 
     Start: startDate, 
     Expiry: expiryDate, 
     Protocols: 'https,http' 
    } 
}; 

    const key = blobService.generateSharedAccessSignature(container, req.query.bloburi, sharedAccessPolicy); 

    res.send(key); 
}); 

Der Fehler ‚Server die Anforderung zu authentifizieren fehlgeschlagen. Stellen Sie sicher, dass der Wert des Autorisierungsheaders einschließlich der Signatur korrekt gebildet ist. ' Wird ausgelöst, wenn das generierte sas-Token verwendet wird.

Ist jemand auf dieses Problem gestoßen?

+0

Können Sie die freigegebene Zugriffssignatur freigeben? Was schicken Sie auch in 'req.query.bloburi'? Ist es die vollständige Blob-URI? –

+1

@GauravMantri Ich habe es gerade herausgefunden! Ich hatte die Berechtigungen in der falschen Reihenfolge. Sie müssen in der hier gezeigten Reihenfolge sein: https://docs.microsoft.com/en-us/rest/api/storageservices/Constructing-a-Service-SAS?redirectedfrom=MSDN. Das ist in den Dokumenten nicht klar! – Tlouth19

+0

Super! Würde es Ihnen etwas ausmachen, das als eine Antwort zu setzen, da es definitiv anderen Leuten helfen wird. –

Antwort

Verwandte Themen