背景

用户在使用xx系统的xx功能时,需要上传图片。本文主要讲解图片上传的流程。

角色

用户:上传者

admin系统:用户在使用admin系统的"修改个人信息"功能时,需要上传头像图片。

seller系统:用户在使用seller系统的“发布商品”功能时,需要上传商品图片。

upload系统:是统一的、全局的、通用的上传服务器,负责接收用户上传来的文件(图片),并存储,可下载图片、可实时缩图。

定时任务:定时清理token表中失效的token

图片上传的流程

1、用户:打开admin系统的"修改个人信息"的页面,在本页面中完成上传头像工作。
2、upload.js:向admin系统的TokenContraller发起ajax请求,去获取token(发起)
3、admin系统:TokenContraller使用TokenUtils创建token,并写入token表。
4、upload.js:得到token
5、upload.js:执行上传(文件+token)
6、upload系统:验证token,若token有效,则接收本次上传。否则丢弃本次上传。
7、upload系统:返回json,其中包含文件在服务器存储的路径,供后续业务使用。

图片上传的流程图

获取token的需要的条件

(用户登录后才能获取token)

admin系统的TokenContraller、seller系统的TokenContraller,的工作就是接收来自客户端的请求,使用TokenUtils生成token,并返回token。

admin系统的TokenContraller,在admin系统“登录”的保护之下,只有用户登录了admin系统才可以成功的获取到token.

seller系统的TokenContraller,,在seller系统“登录”的保护之下,只有用户登录了seller系统才可以成功的获取到token.

不可以公用同一个TokenContraller(比如放在upload系统),必须分开独立使用,已达到依靠“登录”来控制授权的目的。

通过“登录”保护token,通过“token”保护upload上传系统,只有被授权的用户才可以上传。

-----------2个获取令牌的地址-------------------
tokenPath 获取token(令牌)的地址
示例:
管理后台:${ctxa}/sys/sysToken/getToken.do
商家中心:${ctxs}/sys/sysToken/getToken.htm