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?
Können Sie die freigegebene Zugriffssignatur freigeben? Was schicken Sie auch in 'req.query.bloburi'? Ist es die vollständige Blob-URI? –
@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
Super! Würde es Ihnen etwas ausmachen, das als eine Antwort zu setzen, da es definitiv anderen Leuten helfen wird. –