使用JWT

时间:2018-01-05 17:05:17

标签: reactjs authentication redux react-redux jwt

我正在尝试了解反应还原应用程序中的安全性如何工作

这是一个示例缩减器代码

import { combineReducers } from 'redux'
import {
  LOGIN_REQUEST, LOGIN_SUCCESS, LOGIN_FAILURE, LOGOUT_SUCCESS
} from './actions'

function auth(state = {
    isFetching: false,
    isAuthenticated: localStorage.getItem('id_token') ? true : false
  }, action) {
  switch (action.type) {
    case LOGIN_REQUEST:
      return Object.assign({}, state, {
        isFetching: true,
        isAuthenticated: false,
        user: action.creds
      })
    case LOGIN_SUCCESS:
      return Object.assign({}, state, {
        isFetching: false,
        isAuthenticated: true,
        errorMessage: ''
      })
    case LOGIN_FAILURE:
      return Object.assign({}, state, {
        isFetching: false,
        isAuthenticated: false,
        errorMessage: action.message
      })
    case LOGOUT_SUCCESS:
      return Object.assign({}, state, {
        isFetching: true,
        isAuthenticated: false
      })
    default:
      return state
  }
}

本地存储的安全性如何。客户端(浏览器)上的某个人可以在本地存储中篡改令牌吗?

此外,我正在使用boolen isAuthenticated在整个应用程序中使用。是否可以通过在浏览器上以某种方式手动将其设置为true来绕过安全性?

有人能指出任何提供良好安全性的模式。以下是我正在考虑实施的流程

  1. React App使用用户凭据命中API以获取JWT。是否有关于如何通过网络对用户凭证进行编码并在API中对其进行解码的建议
  2. API创建一个JWT并将其发送回Response App。什么是保存和访问JWT的好模式
  3. 我可以将JWT存储在本地存储中吗? Cookie是更好的选择吗?

0 个答案:

没有答案