小编Anu*_*eth的帖子

在客户端应用程序中存储用户标识以获取API请求

我有一个Node-Express REST API,我可以向用户控制器发出GET请求/users/:id- 其中:id是存储在数据库中的用户ID号.我还有一个React-Redux客户端应用程序,可以调用API.为了发出请求,客户端应用程序需要访问用户标识,但我目前还不确定在客户端存储用户标识的最佳方法.

对于其他上下文,我的API会在登录时向客户端发送一个包含user-id 的JWT令牌 ; 客户端应用程序将令牌保存在localStorage.当客户端发出请求时,API会在将响应发送回客户端之前验证解码后令牌中的user-id是否与URL中包含的Id匹配.

我看到两个可能的解决方案

  1. 解码客户端上的JWT令牌并使用令牌中存储的用户ID进行API调用.我认为这是一个潜在的安全风险,因为我相信我需要将这个秘密存储在客户端应用程序上.此外,拥有令牌的任何人都可以访问用户的信息.
  2. API在身份验证时发送用户标识,客户端将其存储在其中localStorage.(我不认为将它存储在Redux存储中会起作用,因为用户可以刷新,清除用户ID的状态).我的感觉是,这不是最佳实践,因为我没有看到许多其他客户端应用程序采用这种方法.

哪两个是更好的解决方案,还是有其他方法我不考虑?

javascript express jwt reactjs redux

6
推荐指数
1
解决办法
882
查看次数

无法使用webpack将NODE_ENV设置为生产

我使用的WebPack 2.2.1建立用于生产反应,终极版的应用程序,但似乎无法设置process.env.NODE_ENVproduction.

这是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)

javascript node.js reactjs webpack

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

javascript ×2

reactjs ×2

express ×1

jwt ×1

node.js ×1

redux ×1

webpack ×1