Åtgärd transportalternativ och uttrycklig TMS publicering
I total5@0.0.19: NEWACTION() lagrar csrf, encrypt och compress i åtgärdsmetadata, men de fastställer inte HTTP-garantier deras namn kan föreslå på HTTp-rutter:
csrf:trueensamt accepterar en POST utan token. Använd en middleware som anroparDEF.onCSRFcheck()med konfigureradsecret_csrf, som i csrf-protection.encrypt:truepå en deklarerad väg lägger till metadata för@encrypt, men den här versionen accepterar fortfarande klagomålet JSON och returnerar klagomen JSON.compress:falseinaktiverar inte vanlig HTTP gzip; responskompression följer$httpcompress, kundens accepterade kodning och responsstorlek.publishförklarar en TMS-tema/schema.Fyllande av en åtgärd publicerar inte automatiskt resultatet.Kall$.publish(value)uttryckligen och bygg den offentliga laddningen avsiktligt.Välj fälten att publicera innan du ringer$.publish(value).
Konfigurera TMS-token för din ansökan.TMS-meddelanden går till abonnenter på det ämnet; ansökningstillstånd och lösenord hör fortfarande till din kod.
secret_csrf : local-csrf-fixture-only
$tms : true
secret_tms : local-tms-fixture-only
$httpcompress : trueNEWACTION('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();
}
});exports.install = function() {
ROUTE('POST /csrf-option/ @json --> Transport|csrf');
ROUTE('GET /compression-option/ --> Transport|compressed');
ROUTE('POST /notice/ @json --> Transport|notice');
};