一直想找一個跟D365 FO一樣的開發平台做一些開發,D365 FO的開發平台的確封裝得太好了,開發人員不需要了解任何前端的知識,這些東西都被控件封裝好了,開發者完全看不到前端的html,css和JavaScript這些東西,只要拖拽控件就好了。
真正做到了只需要關注業務邏輯,開發效率的確是高。
找了很久,找不到類似的東西,這也可以理解,畢竟D365 FO是個商業性的軟件。
最后決定用Ant Design Pro V5做前端,后台的API用Django Restful Framework實現,目的是想能找出一條可以快速開發小型中后台應用的方法。
做了這么多年AX,被AX開發平台的簡易性慣壞了,外面的世界完全搞不懂了。
沒有用過Ant Design Pro V5,也沒用過Django,更不用說Django Restful Framework了,甚至Python都還沒入門,真是零基礎開始。
主要做AX開發,這個開發只是業余時間玩,不知道是不是能堅持下來。
這一篇先說一下Django Restful Framework的Token認證的實現。
簡單說一下基本的概念。
Django是一個用來快速創建web應用的框架,它有自己的View也可以快速頁面,Django的文檔非常完善
https://www.djangoproject.com/
但是選擇了Ant Design Pro V5作為前端框架,那么這個View就用不着了,只想用Django做API的提供者。
現在很多都用Restful API來提供API,而Django也有對應的框架Django Restful Framework來方便地提供Restful API,這個框架的文檔也很完善。
https://www.django-rest-framework.org/
這些文檔內容都很多,完全從頭到尾看完,對業余時間搞這個來說工作量太大,基本上不可能,本來也沒多少業余時間。
只能采取按需索取了,想實現一個功能,找到對應的段落和文章看,但這樣有一個問題,很多時候只能看到局部,不能全面了解,導致找到的實現方式可能不是最好的,甚至是最差的,不過這種事情就很難兩全了,只能逐漸改善了。
首先遇到的第一個問題是如何認證?后台怎么知道某個訪問請求是合法的經過認證的,這個有很多方案,總體來說基於Session的和基於Token的。
這兩種方式的優缺點的對比分析網上有很多資料,這里就不討論了,最終我選擇了基於Token的認證方式。
Token認證又有很多方式,Django Restful Framework也提供了基於Token認證的實現方法,因為D365 FO的API認證用的是JWT的Token,我也覺得這種方式更簡單,后台不需要保存Token信息。
Django Restful Framework有一個JWT的擴展Simple JWT可以方便地實現JWT認證,網址如下:
https://django-rest-framework-simplejwt.readthedocs.io/en/latest/
要做的東西基本上明確了,使用Django Restful Framework Simple JWT實現用戶登陸驗證成功以后獲取JWT並返回給調用的前端。
