继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

crudapi
关注TA
已关注
手记 28
粉丝 2
获赞 9

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

回顾

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

背景

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

Swagger api文档

默认用户名密码:

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

jwtLogin

获取JWT Token

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

设置JWT token

设置Type为Bearer Token

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

查看Authorization

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

基本认证Basic Auth

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

设置

设置Type为Basic Auth

输入用户名密码即可
basicAuth

查看Authorization

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

其它接口

注销登录

创建用户接口

{
    "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集成三种方式,在实际应用中,根据具体业务场景选择最佳方式即可!

打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP