React frontend and REST API, CSRF

后端 未结 2 1789
忘掉有多难
忘掉有多难 2021-01-29 22:57

Using React on the frontend with a RESTful API as backend and authorisation by JWT, how do we handle sessions? For example after login, I get a JWT token from REST. If I save it

2条回答
  •  陌清茗
    陌清茗 (楼主)
    2021-01-29 23:44

    1. React makes AJAX call to REST API

    assured, lots of restful resource client lib available

    1. React gets JWT token from REST

    assured, this is what JWT should do

    1. React writes httponly cookie

    I don't think so, It should not work, but session is not such a important thing, it'll soon get out of date, and recheck password on key operations, even the hackers got it in a very short time, you can bind session token together with IP when user login and check it in your backend apis. If you want it most secured, just keep token in memory, and redo login when open new page or page refreshes

    1. Because react can't read httponly cookie, we use it as-is in our all REST call where we need authentication

    assured, check user and permissions through login token, like csrf you can put your login token into your request header, and check it in your backend apis. Bind login token to your own restful lib will save you a lot codes

    1. REST on calls checks XMLHttpRequest header, what is some kind of CSRF protection REST side check for cookie, read JWT from it and do stuff

    assured, as most people do. Also, bind csrf token to your own restful lib will save you a lot codes

    use user token in header https://www.npmjs.com/package/express-jwt-token Authorization JWT < jwt token >

    use csrf token in header https://github.com/expressjs/csurf req.headers['csrf-token'] - the CSRF-Token HTTP request header.

    restful client https://github.com/cujojs/rest

    react with jwt https://github.com/joshgeller/react-redux-jwt-auth-example

提交回复
热议问题