spring-security结合jwt和umi(react前端框架)企业级框架之前后端分离最佳实战(表单模式登录)(一)

前言

先向大家介绍几个框架的作用,提供官网地址,方便大家详细了解。

  • spring-security spring-security是一个功能强大、高度可定制的身份验证和访问控制框架。它实际上是保护基于Spring的应用程序的标准。 Spring Security是一个专注于为Java应用程序提供身份验证和授权的框架。与所有Spring项目一样,Spring安全的真正威力在于它可以很容易地被扩展以满足定制需求
  • umi umi中文可发音为乌米,是可扩展的企业级前端应用框架。Umi 以路由为基础的,同时支持配置式路由和约定式路由,保证路由的功能完备,并以此进行功能扩展。然后配以生命周期完善的插件体系,覆盖从源码到构建产物的每个生命周期,支持各种功能扩展和业务需求。 Umi 是蚂蚁金服的底层前端框架,已直接或间接地服务了 3000+ 应用,包括 java、node、H5 无线、离线(Hybrid)应用、纯前端 assets 应用、CMS 应用等。他已经很好地服务了我们的内部用户,同时希望他也能服务好外部用户。
  • jwt Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。

WuYiLong原创大约 3 分钟javasecurityumi
使用umi的相关问题

umi配置request.js是函数中间件

//配置request请求时的默认参数
const request = extend({
  prefix: 'http://127.0.0.1:7001/api',
  errorHandler,
  // 默认错误处理
  credentials: 'include', // 默认请求是否带上cookie
});

// 中间件-用于处理通用的响应提示和请求过滤
request.use(async (ctx, next) => {
  // 处理request
  await next();
  // 处理response
  if (ctx.res.msg !== undefined) {
    if (ctx.res.code !== 0) {
      message.error(ctx.res.msg);
    } else {
      message.success(ctx.res.msg);
    }
  }
})
export default request;


WuYiLong原创小于 1 分钟umiumi
umi访问egg的跨域问题

umi访问egg的跨域问题


const request = extend({
  prefix: 'http://localhost:7001/api',
  errorHandler,
  // 默认错误处理
  credentials: 'same-origin', // 默认请求是否带上cookie
});

npm install egg-cors --save
// plugin.js
cors: {
    enable: true,
    package: 'egg-cors',
  },

// configdefault.js
config.cors = {
    origin: 'http://localhost:8000',
    allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH',
};


WuYiLong原创小于 1 分钟nodeumi