2017-01-04 35 views
6

Chciałbym dodać csurf jako ekspresowe oprogramowanie pośrednie wewnątrz aplikacji react-server dla aplikacji uniwersalnej.Używanie csurf z serwerem reagowania

Co chcę osiągnąć, to dodanie tokena csrf do ukrytego wejścia w formularzu w komponencie reagowania, aby zachować ten sam strumień ochrony csrf, jaki zapewnia strona internetowa renderowana przez serwer, ale w ramach SPA.

Czy jest to technicznie możliwe w ramach serwera reagowania? Jeśli tak, w jaki sposób mogę przekazać token csrf, który jest dostępny w obiekcie odpowiedzi do komponentu reagowania za pośrednictwem strony (najlepiej)?

Odpowiedz

2

I rzeczywiście wpadł na ten sam problem i na szczęście stało się natknąć roztworze tutaj: https://github.com/kriasoft/react-starter-kit/issues/1142

aby wykorzystać go po prostu zrobić:

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

a następnie dla każdego żądania uzyskania ustawić ciasteczko z csrf token:

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

Dzięki za wskazanie tego, wydaje się, że jest to dość ogólne rozwiązanie, które może działać również w kontekście serwera-reagenta. – feychou