我有一个Node-Express REST API,我可以向用户控制器发出GET请求/users/:id
- 其中:id
是存储在数据库中的用户ID号.我还有一个React-Redux客户端应用程序,可以调用API.为了发出请求,客户端应用程序需要访问用户标识,但我目前还不确定在客户端存储用户标识的最佳方法.
对于其他上下文,我的API会在登录时向客户端发送一个包含user-id 的JWT令牌 ; 客户端应用程序将令牌保存在localStorage
.当客户端发出请求时,API会在将响应发送回客户端之前验证解码后令牌中的user-id是否与URL中包含的Id匹配.
我看到两个可能的解决方案
localStorage
.(我不认为将它存储在Redux存储中会起作用,因为用户可以刷新,清除用户ID的状态).我的感觉是,这不是最佳实践,因为我没有看到许多其他客户端应用程序采用这种方法.哪两个是更好的解决方案,还是有其他方法我不考虑?
我使用的WebPack 2.2.1建立用于生产反应,终极版的应用程序,但似乎无法设置process.env.NODE_ENV
到production
.
这是webpack.config.js:
var webpack = require('webpack');
var path = require('path');
var ExtractTextPlugin = require("extract-text-webpack-plugin");
var HtmlWebpackPlugin = require('html-webpack-plugin');
const VENDOR_LIBS = [
'axios', 'lodash', 'react', 'react-dom', 'react-redux',
'react-router', 'redux', 'redux-form', 'redux-thunk'
];
module.exports = {
entry: {
bundle: './src/index.js',
vendor: VENDOR_LIBS
},
output: {
path: path.resolve(__dirname, 'dist'),
filename: '[name].[chunkhash].js'
},
module: {
rules: [
{
use: 'babel-loader',
test: /\.js$/,
exclude: /node_modules/,
},
{
test: /\.css$/,
use: ExtractTextPlugin.extract({
fallback: "style-loader",
use: "css-loader"
})
}
]
}, …
Run Code Online (Sandbox Code Playgroud)