写点什么

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

作者:crudapi
  • 2022 年 7 月 16 日
  • 本文字数:1852 字

    阅读完需:约 6 分钟

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

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

回顾

通过上一篇文章https://xie.infoq.cn/article/029d5d066de471720c7ab2066的介绍,后台 API 已经搭建完成。https://xie.infoq.cn/article/21934e7d062a855c94387dfb1 中介绍了用户和权限相关内容,本文主要介绍 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/loginaccept: application/jsoncontent-type: application/x-www-form-urlencodedusername: superadminpassword: 1234567890
复制代码

JWT 令牌 Token

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

登录 api

POST https://demo.crudapi.cn/api/auth/jwt/loginaccept: application/jsoncontent-type: application/x-www-form-urlencodedusername: superadminpassword: 1234567890
复制代码


获取 JWT Token

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

设置 JWT token

设置 Type 为 Bearer Token

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


查看 Authorization

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


基本认证 Basic Auth

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

设置

设置 Type 为 Basic Auth

输入用户名密码即可


查看 Authorization

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


其它接口

注销登录

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 即可,代码同步更新。

发布于: 刚刚阅读数: 4
用户头像

crudapi

关注

crudapi是crud+api组合,表示增删改查接口 2019.06.19 加入

使用crudapi可以告别枯燥无味的增删改查代码,让您更加专注业务,节约大量成本,从而提高工作效率。crudapi的目标是让处理数据变得更简单!官网:https://crudapi.cn 演示:https://demo.crudapi.cn/crudapi/login

评论

发布
暂无评论
基于crudapi后端Java SDK二次开发之API认证和鉴权(二)_API_crudapi_InfoQ写作社区