2017-01-04 21 views
6

Evrensel bir uygulama için react-server içinde csurf ekspres bir ara katman yazılımı olarak eklemek istiyorum.Reaktif sunucusu ile csurf kullanma

Elde etmek istediğim, csrf belirtecini, sunucu tarafından oluşturulmuş bir web sitesinin sağlayacağı aynı csrf koruma akışını korumak için, ancak bir SPA içinde, reak bileşenindeki bir formdaki gizli bir girdiye eklemektir.

Bu teknik olarak tepki sunucusunda mümkün mü? Eğer öyleyse, yanıt nesnesinde bulunan csrf belirtecini sayfa üzerinden tepki bileşenine nasıl iletebilirim (ideal olarak)?

cevap

2

Aslında aynı sorunla karşılaştık ve neyse ki burada solüsyon rastlamak oldu: https://github.com/kriasoft/react-starter-kit/issues/1142

sadece bunu kullanmak için: ve sonra her olsun istek için bir çerez bırakır

app.use(csrf({ cookie: true, value: (req) => (req.cookies.csrfToken) })); 

csrf jetonu:

res.cookie('csrfToken', req.csrfToken ? req.csrfToken() : null, { sameSite: true, httpOnly: true }); 
+0

Bunu belirttiğiniz için teşekkür ederiz, oldukça genel bir çözüm gibi görünüyor, böylelikle bir tepki sunucusu bağlamında da çalışabilir. – feychou