前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于crudapi后端Java SDK二次开发之API认证和鉴权(二)

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

原创
作者头像
crudapi
修改2022-07-17 10:11:08
4560
修改2022-07-17 10:11:08
举报
文章被收录于专栏:crudapicrudapi

基于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

默认用户名密码:

代码语言:shell
复制
superadmin/1234567890

Cookie

登录api

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

代码语言:txt
复制
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

代码语言:txt
复制
POST https://demo.crudapi.cn/api/auth/jwt/login
accept: application/json
content-type: application/x-www-form-urlencoded
username: superadmin
password: 1234567890
jwtLogin
jwtLogin

获取JWT Token

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

设置JWT token

设置Type为Bearer Token

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

jwtAuth
jwtAuth
查看Authorization

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

jwtAuthorization
jwtAuthorization

基本认证Basic Auth

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

设置

设置Type为Basic Auth

输入用户名密码即可

basicAuth
basicAuth
查看Authorization

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

basicAuthorization
basicAuthorization

其它接口

注销登录

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

创建用户接口

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

代码语言:txt
复制
{
    "name": "testuser",
    "username": "testuser",
    "password": "testuser",
    "enabled": true,
    "accountNonExpired": true,
    "accountNonLocked": true,
    "credentialsNonExpired": true,
    "roleLines": [{
        "name": "业务数据角色",
        "role": {
            "id": 20,
            "name": "业务数据角色",
        },
        "roleId": 20
    }]
}

curl示例

查询序列号

代码语言:shell
复制
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'

查询序列号

代码语言:shell
复制
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数据

代码语言:shell
复制
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即可,代码同步更新。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基于crudapi后端Java SDK二次开发之API认证和鉴权(二)
    • 回顾
      • 背景
        • Swagger api文档
          • Cookie
            • 登录api
          • JWT令牌Token
            • 登录api
            • 获取JWT Token
            • 设置JWT token
          • 基本认证Basic Auth
            • 设置
          • 其它接口
            • 注销登录
            • 创建用户接口
            • 查询序列号
            • 查询序列号
            • 导入EXCEL数据
        • curl示例
          • 小结
            • crudapi简介
              • demo演示
                • 附源码地址
                  • GitHub地址
                  • Gitee地址
              相关产品与服务
              Serverless HTTP 服务
              Serverless HTTP 服务基于腾讯云 API 网关 和 Web Cloud Function(以下简称“Web Function”)建站云函数(云函数的一种类型)的产品能力,可以支持各种类型的 HTTP 服务开发,实现了 Serverless 与 Web 服务最优雅的结合。用户可以快速构建 Web 原生框架,把本地的 Express、Koa、Nextjs、Nuxtjs 等框架项目快速迁移到云端,同时也支持 Wordpress、Discuz Q 等现有应用模版一键快速创建。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档