JAP v1.0.1-alpha 发布,适配前后端分离的项目

Posted 七彩狼丿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAP v1.0.1-alpha 发布,适配前后端分离的项目相关的知识,希望对你有一定的参考价值。

JAP(JustAuthPlus) v1.0.1-alpha 版本已于2021年03月05日发布。

本版本为预览版本,如果遇到问题,请通过 Issue 告知:

  • https://gitee.com/fujieid/jap...
  • https://github.com/fujieid/ja...

jap-core

新功能

  • 增加 JapErrorCode 枚举类,限定异常码和提示
  • 增加 JapResponse 类,规范接口返回内容
  • 增加 JapTokenHelper 类,统一管理用户的Token
  • 增加 JapContext 类,维护 JAP 上下文信息
  • 增加 JapAuthentication 类,统一管理登录状态信息以及 JAP 上下文信息

修改

修改包结构

  • AuthenticateConfig,JapConfig 移到 com.fujieid.jap.core.config 包中
  • JapUtil 移到 com.fujieid.jap.core.util 包中

删除文件

  • 删除 JapCacheContextHolder

修改代码

  • 重构 AbstractJapStrategy,引入上下文 JapContextJapAuthentication
  • 重构 JapConfig 类,仅保留 ssossoConfig 属性,同时增加 tokenExpireTimecacheExpireTime 参数
  • 修改 JapCacheConfig 中的缓存默认有效期为7天
  • 修改 JapUserService 接口类中的默认内容
  • JapCache 中添加 void removeKey(String key) 方法
  • JapException 中增加 errorCodeerrorMessage 属性,方便将异常信息处理为统一格式的返回数据
  • JapStrategy 接口中 authenticate 方法的返回类型修改为 JapResponse,所有模块的策略方法都返回统一格式的数据
  • JapUser 中增加 token 属性,登录完成后将自动返回 JAP Token
  • JapUtil 类中为 redirect 方法打上 @Deprecated 标记,未来可能删除。同时增加 createToken 方法

jap-oauth2

  • 修改 Oauth2Strategyauthenticate 方法,统一返回 JapResponse

jap-oidc

  • 修改 OidcStrategyauthenticate 方法,统一返回 JapResponse

jap-simple

  • 修改 SimpleStrategyauthenticate 方法,统一返回 JapResponse

jap-social

  • 修改 SocialStrategyauthenticate 方法,统一返回 JapResponse

jap-sso

  • 修改 JapSsoHelper#login 方法的返回值为当前用户的 JAP Token
  • 新增 JapSsoUtil 类,处理 Token
  • JapSsoConfig 类中,删除 loginUrllogoutUrl 属性

Other

  • 增加一些单元测试

可选 Demo

  • 普通示例项目:jap-demo
  • 前后端分离项目示例:jap-demo-vue

JAP 是什么?

JAP 是一款开源的登录中间件,基于模块化设计,并且与业务高度解耦,使用起来非常灵活,开发者可以毫不费力地将 JAP 集成到任何 web 应用程序中,就像集成 JA 一样,简单方便。

JAP 要做的是为所有需要登录认证的应用提供一套标准的解决方案,集成所有 APP。方便开发者无缝对接任何第三方应用或者自有系统。

  • JAP 口号:Just auth into any app!
  • JAP 目标:让身份链接无处可藏
  • JAP 价值:方便开发者无缝对接任何第三方应用或者自有系统,提高开发效率,减少代码维护成本
  • JAP 愿景:以开源的方式,受惠于开源社区,赋能于开发者。使之成为开发者生态内必不可少的“基础设施”,以期形成新的技术标准。

致开发者:我们要让开发者可以基于 JAP 开发出自己的 IAM 或者 IDaaS 系统。

JAP 有什么特点?

  • 单点登录:一处登录,处处通行
  • 开箱即用:API 设计趋近于白话,类似并参考 JustAuth
  • 多平台:

    • 国内外数十家第三方平台(基于 JustAuth)
    • OAuth(OIDC) 协议的平台,内置国内外常见平台
    • SAML 协议的平台,内置国内外常见平台
  • 业务解耦:JAP 不深入具体的业务,只将授权认证方面的功能抽象出一套标准的组件,方便任意系统快速对接
  • 模块化:JAP 基于模块开发,基本做到,用哪种引哪种
  • 统一标准:一切内置实现或者自定义的实现,都基于标准的策略
  • 多语言支持:Java、Python、Go、Node等

适用于哪些场景?

  • 新项目立项,你们需要研发一套独立的、统一的、包含登录、认证的系统
  • 现有登录模块为自研,但是新一轮的技术规划中,你们想将登录认证模块重构,以更加灵活的架构适应后面的新需求,比如:集成 MFA 登录、集成 OAuth 登录等
  • 你们的项目太多,每个项目都需要登录认证模块,想解决这种重复劳动的问题
  • 从长远方面考虑,公司或组织或个人需要一套标准的、灵活的、功能全面的登录认证功能
  • 你们不想将研发成本放到登录认证这种必须但想做完善又需要花费大量时间成本、人力成本的事情上,希望有一个中间件可以完美集成登录认证功能,使研发人员有更多的时间和精力投入到业务开发中,提高研发产能和研发效率
  • 你们除了需要对接标准的身份提供商外,还有一些非标准的身份提供商,需要投入研发人员单独定制开发
  • 你们企业中用到的开发语言较多,比如:Java、Python、Node等,每种语言对应的系统,都要使用不同语言实现相同的登录认证功能
  • 你们需要研发一个支持 OAuth 登录的 Web 应用程序
  • 你们想让自己的系统支持对外提供 OAuth 服务
  • 你们需要研发一个支持 SAML 登录的 Web 应用程序,但又苦于 SAML 那庞大而繁琐的业务流程和配置
  • 你们想研发一个支持 LDAP 登录的程序,但又不知道如何入手
  • ...

目前实现的功能

  • 实现账号密码登录
  • 实现第三方社交帐号登录
  • 实现标准的 OAuth 2.0 应用的授权码登录
  • 实现 OIDC 应用的登录
  • 支持同源 domain 的单点登录

感恩有你,欢迎加入 JAP 开发者组织

JAP 开源地址

  • github: https://github.com/fujieid/jap
  • gitee: https://gitee.com/fujieid/jap

以上是关于JAP v1.0.1-alpha 发布,适配前后端分离的项目的主要内容,如果未能解决你的问题,请参考以下文章

基于laravel+antdesign+vue的前后端分离开发框架

基于Laravel8.x+Vue实现的前后端分离项目

ThinkPhp6.x+Vue前后端分离后台管理系统

基于ThinkPhp6+Vue+AntDesign前后端分离解决方案

Laravel8.x AntDesign Vue 前后端分离系统搭建详解

Laravel8.x+AntDesign+Vue前后端分离快速开发平台