基于crudapi零代码后端Java SDK二次开发之API认证和鉴权(二)

基于crudapi后端Java SDK二次开发之API认证和鉴权(二)

回顾

通过上一篇文章基于crudapi后端Java SDK二次开发之环境搭建(一)的介绍,后台API已经搭建完成。RBAC权限模型中介绍了用户和权限相关内容,本文主要介绍API集成中认证和鉴权相关内容。

背景

实际项目中,为了保证数据安全,API需要认证才可以访问,本文主要介绍三种API认证方式,基于Spring Security框架实现, 包括Cookie,Basic Auth,JWT令牌Token。

Swagger api文档

https://demo.crudapi.cn/swagger-ui.html

默认用户名密码:

superadmin/1234567890

Cookie

登录api

登录成功后,浏览器自动处理cookie并识别登录状态,适合web访问场景,方便快捷!

POST https://demo.crudapi.cn/api/auth/login
accept: application/json
content-type: application/x-www-form-urlencoded
username: superadmin
password: 1234567890

JWT令牌Token

登录成功后,记录TOKEN,每次发送请求之前,设置一下即可,后台会解析TOKEN并识别用户,并判断是否具有权限,适合手机移动端访问场景,有效期比cookie长!

登录api

POST https://demo.crudapi.cn/api/auth/jwt/login
accept: application/json
content-type: application/x-www-form-urlencoded
username: superadmin
password: 1234567890

基于crudapi零代码后端Java SDK二次开发之API认证和鉴权(二)

获取JWT Token

从请求返回的头里面获取token字段内容,格式为Bearer XXXXX

设置JWT token

设置Type为Bearer Token

Bearer XXXXX和XXXX两种格式都可以,后台自动识别

基于crudapi零代码后端Java SDK二次开发之API认证和鉴权(二)

查看Authorization

请求头Authorization字段自动识别为:Bearer XXXXX

基于crudapi零代码后端Java SDK二次开发之API认证和鉴权(二)

基本认证Basic Auth

直接采用户名和密码的方式,适合任何简单处理的场景,要注意安全问题。

设置

设置Type为Basic Auth

输入用户名密码即可

基于crudapi零代码后端Java SDK二次开发之API认证和鉴权(二)

查看Authorization

请求头Authorization字段自动识别为: Basic c3VwZXJhZG1pbjoxMjM0NTY3ODkw,其中c3VwZXJhZG1pbjoxMjM0NTY3ODkw为superadmin:1234567890的Base64编码。

基于crudapi零代码后端Java SDK二次开发之API认证和鉴权(二)

其它接口

注销登录

GET https://demo.crudapi.cn/api/auth/logout

创建用户接口

POST https://demo.crudapi.cn/api/business/user

{
    "name": "testuser",
    "username": "testuser",
    "password": "testuser",
    "enabled": true,
    "accountNonExpired": true,
    "accountNonLocked": true,
    "credentialsNonExpired": true,
    "roleLines": [{
        "name": "业务数据角色",
        "role": {
            "id": 20,
            "name": "业务数据角色",
        },
        "roleId": 20
    }]
}

curl示例

查询序列号

curl -u 'superadmin:1234567890' -X GET -H 'Content-Type: application/json' 'https://demo.crudapi.cn/api/metadata/sequences/1'
curl -H 'Authorization:Basic c3VwZXJhZG1pbjoxMjM0NTY3ODkw' -X GET -H 'Content-Type: application/json' 'https://demo.crudapi.cn/api/metadata/sequences/1'

查询序列号

curl -u 'superadmin:1234567890' -X POST -H 'Content-Type: application/json' -d '{"currentTime":false,"sequenceType":"STRING","minValue":1,"maxValue":999999999,"nextValue":1,"incrementBy":1,"name":"orderCode","caption":"订单流水号","format":"SO_%9d"}' 'https://demo.crudapi.cn/api/metadata/sequences'

导入EXCEL数据

curl -u 'superadmin:1234567890' -F "file=@product.xlsx" "https://demo.crudapi.cn/api/business/product/import"

小结

本文主要介绍了API集成三种方式,在实际应用中,根据具体业务场景选择最佳方式即可!

crudapi简介

crudapi是crud+api组合,表示增删改查接口,是一款零代码可配置的产品。使用crudapi可以告别枯燥无味的增删改查代码,让您更加专注业务,节约大量成本,从而提高工作效率。
crudapi的目标是让处理数据变得更简单,所有人都可以免费使用!
无需编程,通过配置自动生成crud增删改查RESTful API,提供后台UI管理业务数据。基于主流的开源框架,拥有自主知识产权,支持二次开发。

demo演示

crudapi属于产品级的零代码平台,不同于自动代码生成器,不需要生成Controller、Service、Repository、Entity等业务代码,程序运行起来就可以使用,真正0代码,可以覆盖基本的和业务无关的CRUD RESTful API。

官网地址:https://crudapi.cn
测试地址:https://demo.crudapi.cn/crudapi/login

附源码地址

GitHub地址

https://github.com/crudapi/crudapi-admin-web

Gitee地址

https://gitee.com/crudapi/crudapi-admin-web

由于网络原因,GitHub可能速度慢,改成访问Gitee即可,代码同步更新。

Original: https://www.cnblogs.com/crudapi/p/16480705.html
Author: crudapi
Title: 基于crudapi零代码后端Java SDK二次开发之API认证和鉴权(二)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/574277/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 都2020了,还不好好学学泛型?

    一、概述 Java 泛型( generics)是 JDK 1.5 中引入的一个新特性, 泛型提供了 编译时类型安全检测机制,该机制允许开发者在编译时检测到非法的类型。 泛型,即 参…

    Java 2023年6月6日
    085
  • Java基础之 注释、标识符、关键字

    在代码量比较多,项目结构复杂起来,我们就需要用到注释。 注释不会被执行,是给写代码的人看的 书写注释是一个非常好的习惯 在Java中的注释有三种: 单行注释 多行注释 文档注释 示…

    Java 2023年6月8日
    073
  • Netty源码研究笔记(3)——Channel系列

    依旧是通过先纵向再横向的研究方法,在开篇中,我们发现不管是Sever还是Client,最终的启动是通过调用channel的对应方法来完成的,而这个动作实际在channel绑定的ev…

    Java 2023年6月10日
    084
  • 23 种设计模式的通俗解释,虽然有点污,但是很正点

    01 工厂方法 追 MM 少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是 MM 爱吃的东西,虽然口味有所不同,但不管你带 MM 去麦当劳或肯德基,只管向服务员说「来四个鸡翅」就行了…

    Java 2023年6月13日
    062
  • javaNIO:选择器–理论 Selector

    选择器 最后,我们探索一下选择器,选择器Selector是nio最重要的一个特性。由于选择器内容比较多,所以本篇先偏理论地讲一下,后一篇讲代码,文章也没有什么概括、总结的,写到哪儿…

    Java 2023年5月29日
    078
  • JSP中的JSTL 标签库

    JSTL 标签库 JSTL 标签库的使用步骤 core 核心库使用 JSTL 标签库 JSTL 标签库 全称是指 JSP Standard Tag Library JSP 标准标签…

    Java 2023年6月15日
    075
  • leetcode 1110. Delete Nodes And Return Forest 删点成林(中等)

    一、题目大意 给出二叉树的根节点 root,树上每个节点都有一个不同的值。 如果节点值在 to_delete 中出现,我们就把该节点从树上删去,最后得到一个森林(一些不相交的树构成…

    Java 2023年6月14日
    088
  • Java清屏函数

    Java清屏函数 Java清屏函数 前因 代码 前因 因为最近在做Java课程的大作业,一个基于控制台交互的程序,试图绘制界面,希望每次对console清屏,在网上找了很多清屏函数…

    Java 2023年6月5日
    083
  • CSharp: Proxy Pattern in donet core 3

    调用: 输出: https://github.com/apress/pro-c-sharp-10https://github.com/ProfessionalCSharp/Prof…

    Java 2023年6月16日
    056
  • TestLink在线Excel用例转换xml

    项目功能 TestLink在线Excel用例转换xml将符合用例模板的Excel测试用例,转换成xml,用于导入TestLink进行用例管理。 使用方法 1、编写测试用例 2、打开…

    Java 2023年6月6日
    0127
  • web开发技术-过滤器

    纪录自己的学习过程,帮助记忆 1、简介 过滤器是服务器端的一个组件,可以接收用户端的请求和响应信息,并且对这些信息进行过滤 过滤器不处理结果,只做一些辅助性操作 2、过滤器的工作原…

    Java 2023年6月13日
    092
  • Java源码赏析(六)Class<T> 类

    目的 Class 类是每一个程序员都必须了解的,也是使用反射机制的基础。 这篇文章将Class 类的公共方法大致介绍了一遍(省略了安全、枚举、断言、注解相关代码)。 代码 pack…

    Java 2023年6月8日
    077
  • 《Java编程思想》读书笔记(三)

    前言:三年之前就买了《Java编程思想》这本书,但是到现在为止都还没有好好看过这本书,这次希望能够坚持通读完整本书并整理好自己的读书笔记,上一篇文章是记录的第十一章到第十六章的内容…

    Java 2023年6月5日
    070
  • SpringBoot系列之actuator监控管理极速入门与实践

    @ SpringBoot官方提供了spring-boot-starter-actuator场景启动器用于系统的监控管理,可以通过HTTP,JMX,SSH协议来进行操作,自动得到审计…

    Java 2023年5月30日
    0103
  • java中多线程安全性和同步的常用方法

    1、多线程安全性问题,即多线程在什么场景下会出现异常? 多个线程同时调用一个共享的变量(对象),比如当某个线程操作车票的过程中,尚未操作完成时,其他线程参与进来,也操作车票。 2、…

    Java 2023年5月29日
    069
  • 学到了_IDEA从数据库表生成实体类

    IDEA连接数据库 选择表生成实体 自定义配置 照旧,先说点废话,因为以前太蠢了,每次数据库里的表的字段要去生成实体对象时,都哼哧哼哧自己手动去写那些该死的字段名,还有可能手写写错…

    Java 2023年6月7日
    090
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球