一直想找一个跟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并返回给调用的前端。