Ich muss das CSRF-Token in einem OData-Modell zurücksetzen. Basierend auf der UI5-Dokumentation versuche ich das mit refreshSecurityToken(fnSuccess?, fnError?, bAsync?)
Funktion zu tun. (click here for reference)SAP GATEWAY & UI5: Wie kann das CSRF-Token zurückgesetzt werden? =
Ich schrieb den folgenden Code:
var oDataModel = this.getOwnerComponent().getModel("ZMDM_ODATA_FILE_SRV");
oDataModel.setTokenHandlingEnabled(true);
oDataModel.refreshSecurityToken(function() {
var token = oDataModel.getSecurityToken();
console.log(token);
// can upload the file if token reset
});
Das Problem ist, dass dieses Token nicht für 30 Minuten zurückgesetzt und das ist unsere Session-Timeout. Tatsächlich ist es während der Lebensdauer der Sitzung gültig. Ich habe auch den folgenden Link:
https://blogs.sap.com/2014/08/26/gateway-protection-against-cross-site-request-forgery-attacks/
Eigentlich viele Menschen dieses Problem hatte, aber ich konnte keine klare Lösung für das Zurücksetzen des Token finden. Ich habe alle notwendigen Schritte im Front-End durchgeführt, um eine Head-Anfrage zum Ausruhen des Tokens zu senden. Ich denke, etwas fehlt in Bezug auf die Back-End-Gateway-Einstellungen oder ABAP-Codierung.
Was muss ich tun?
Ich werde es überprüfen. Weitere Funktionsbausteine zum Zurücksetzen des CSRF-Tokens und nicht zum Löschen? –
Was meinst du mit zurücksetzen? Warum möchten Sie das Token genau zurücksetzen? – mash
Es muss zurückgesetzt werden, um eine neue Datei an CMS senden zu können. –