本文主要介紹crudapi三種API認證方式,基於Spring Security框架實現, 包括Cookie,Basic Auth,JWT令牌Token。 ...
基於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
獲取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 "[email protected]" "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即可,代碼同步更新。