ForgeTotal.js 5
cs

Total.js 5

Akční dopravní možnosti a výslovné TMS publikování

Total.js 5 · total5@0.0.19 total5reference Spuštěno s Total.js 5

V total5@0.0.19: NEWACTION() ukládá csrf, encrypt a compress v akčních metadatách, ale neustanovují HTTP záruky jejich názvy by mohly navrhnout na hTTP tratech:

  • csrf:true samo akceptuje POST bez tokenu. Použijte middleware, který volá DEF.onCSRFcheck() s nakonfigurovaným secret_csrf, jako v csrf-protection.
  • encrypt:true na prohlášené cestě přidává metadata @encrypt, ale tato verze stále přijímá žalobní text JSON a vrací žalobu JSON.
  • compress:false nevylučuje běžný HTTP gzip; komprese odpovědi následuje $httpcompress, přijatá kódování a velikost odpovědi klienta.
  • publish vyhlašuje TMS téma / schéma. dokončení akce automaticky nezveřejní výsledek. $.publish(value) výslovně a úmyslně vytvořit veřejný poplatek. Vyberte pole, které chcete zveřejnit před voláním $.publish(value).

Nastavení tokenu TMS pro vaši aplikaci. zprávy TMS jdou k předplatitelům této tématu; pravidla povolení aplikace a nájemnosti stále patří do vašeho kódu.

config
secret_csrf : local-csrf-fixture-only
$tms : true
secret_tms : local-tms-fixture-only
$httpcompress : true
definitions/transport.js
NEWACTION('Transport|csrf', {
	csrf: true,
	input: '*value:String',
	action: function($, model) { $.callback(model); }
});
NEWACTION('Transport|encrypted', {
	encrypt: true,
	route: 'POST /encrypted/',
	input: '*value:String',
	action: function($, model) { $.callback(model); }
});
NEWACTION('Transport|compressed', {
	compress: false,
	action: function($) { $.callback({ text: 'abcdefghij'.repeat(400) }); }
});
NEWACTION('Transport|notice', {
	publish: 'value:String',
	input: '*value:String',
	action: function($, model) {
		$.publish({ value: model.value });
		$.success();
	}
});
controllers/transport.js
exports.install = function() {
	ROUTE('POST /csrf-option/ @json --> Transport|csrf');
	ROUTE('GET /compression-option/ --> Transport|compressed');
	ROUTE('POST /notice/ @json --> Transport|notice');
};