APP下载

基于RESTful架构的任务发放平台开发

2019-09-13刘润杰龙华秋容振邦

网络安全技术与应用 2019年9期
关键词:单点界面功能

◆刘润杰 龙华秋 容振邦

基于RESTful架构的任务发放平台开发

◆刘润杰 龙华秋 容振邦

(五邑大学智能制造学部 广东 529020)

随着互联网经济的发展与进步,企业对营销推广的需求急剧增加。任务发放平台,一种紧追互联网时代的盈利模式,符合推广商家和学生的共同利益,是我们创业想法的切入点。通过建设该系统,达到任务发放与完成的目的,最终从中获益。通过对Restful架构的系统开发研究,增强传统系统开发模式向Rest风格的转化效果,达到与API实现的解耦,实现微服务开发模式,达到任务平台的便捷维护与扩展开发要求。

任务开发平台;Restful;微服务

在“互联网+”经济下,很多企业对经营模式进行转型[1]。

在很多企业转型为互联网+的过程中,需要的是极大的用户群体与极快的盈利模式。任务发放平台提供给企业一个风险极小,推广方式简单,通过平台用户完成企业发放的任务,从而达到企业营销效果。

任务发放平台属于在线模式,在开发上使用Restful架构[2],通过此架构,能够提供相应api,使得相应企业在使用平台时能够更加的灵活。

1 系统设计

一个任务发放平台,通常是包含任务提供者(企业用户),任务完成者(个人用户),根据一个正常的系统开发,本此说明本系统设计的其中三个重要的功能模块:权限认证服务、支付服务、任务发放服务。

权限认证服务,是针对不同角色不同系统的单点登录[3]及权限认证。本系统架构采用springboot+dubbox微服务开发,各个单独程序形成独立的微服务。通过单点登录及权限认证,可以对每个用户对于相应系统的限制访问。

支付服务,是针对企业在发放任务时需要支付一定的金额作为该任务的佣金,支付功能是任务发放平台必不可少的服务,本平台作为一个线上平台,企业,管理员,个人用户均是通过平台任务的发放,完成,管理作为流程媒介,于是在企业支付押金,任务金,平台为个人发放佣金,均须使用支付服务。本支付服务使用蚂蚁金服支付宝web支付api[4]。

任务发放服务,是用于企业发放任务、个人完成任务的平台。

通过任务平台,企业可以发布相应类型(如注册,下载等)的任务,而个人可以通过平台去认领与完成自己能做的任务。

2 具体实现

本平台开发使用架构Springboot2.0开发,遵守RESTful的应用接口规范,以Mysql作为数据库,redis作为会话信息缓存,整个系统性能上相对稳定,且部署便利。

2.1 权限认证服务

权限认证,包含单点登录和权限管理。单点登录,可实现同个设备一次登录,多个系统同时认证。权限管理,可实现对每个系统的权限设置,实现标准的RBAC模式。

2.1.1 单点登录

无论在同域、同父域不同子域或者不同域,在多应用系统下,只需要登录一次就可以访问所有相互信任的应用系统。在微服务开发模式下,单点登录起到重要的作用。

登录流程(基于token,主动存储在localStorage,发送请求在header上附上token):

(1)用于在客户端未登录时,将自动跳转到SSOServer进入统一登录界面

(2)用户登录成功之后将会为用户分配sessionid并跳转到源url,附带sessionid

(3)SSOFilter验证sessionid无误后,将sessionid写入客户端localStorage

注销流程:

(1)用户与客户端请求注销,会跳转到ssosever自动销毁全局sessionid,实现全局销毁

(2)SSOFilter按登录流程照常拦截

工作原理如下图1所示。

图1 单点登录原理

SSOFilter原理如下:

(1)获取请求路径;

(2)请求路径为退出,则删除会话信息并退出;

(3)请求路径为其他,校验cookie是否有效,如果无效则退出,检查redis中session信息是否过期,如果过期则退出;

(4)执行过滤器通过的请求。

2.1.2 权限管理

权限管理使用标准的RBAC[5]设计模式,主要功能包含:人员管理、角色管理、功能管理、权限组管理、系统管理,日志管理。

人员管理:用于管理平台的用户,用户需要绑定角色;

角色管理:是人员获得相应权限的唯一设置入口,如个人用户、企业角色、管理员等;

权限组管理:权限组归属于角色,每个角色可以拥有多个权限组,权限组与系统绑定,不同的权限组可以来源于不同的系统;

功能管理:功能归属于权限组,在设置权限组时可以绑定不同的功能点,功能与系统绑定,同一系统的权限组只能绑定相同系统中的功能;

系统管理:不同的服务模块管理,如后台管理系统,任务平台系统,与权限组、功能绑定;

日志管理:用于查询所有用户的登录信息。

本平台权限管理RBAC关联关系如图2所示。

2.2 任务发布平台

任务发布平台基本需要实现的功能是个人中心与任务中心,在个人中心用户可以对自己的基本信息管理,钱包管理等;任务中心则是收发任务平台。

2.2.1 个人中心

个人中心目前已实现的功能包含:个人资料编写、会员中心。

个人资料可以修改头像、支付宝信息、身份认证信息、以及修改密码;会员中心可以查看钱包金额、点击充值跳转充值。

图2 权限管理关系图

其中,充分利用了阿里云OSS的存储能力,通过OSS,将有关文件的内容存储在OSS中,并对文件地址的获取,从而读取文件。会员中心中的充值主要实现是通过跳转到支付服务系统进行充值,其主要面对的困难是跨域问题,以下是实现跨域在headers中的设置:

Access-Control-Allow-Credentials: true

Access-Control-Allow-Headers: Origin,X-Requested-With, Content-Type,Accept

Access-Control-Allow-Methods: POST,GET,OPTIONS,DELETE

Access-Control-Allow-Methods: GET,POST,OPTIONS

Access-Control-Allow-Origin: *

个人中心界面图如图3。

图3 个人中心界面图

2.2.2 任务中心

任务中心主要用于个人用户接收任务并完成任务使用,一个任务的流程如图4。

图4 任务流程图

任务主界面如图5。

图5 任务主界面图

2.3 支付服务

支付服务主要用于平台支付功能,使用的是支付宝api。

配置项如下:

alipay.uid=20881021...48316

alipay.app_id=20160...79693

alipay.merchant_private_key=MIIEvAIB...M2yoBRium48fy93/tkr88S+chrQTZCe2WGA

alipay.alipay_public_key=MIIBI...KRiHUCCvG8zvD+JmS+zVAHqjOuOIyznytlKGG3lX9FZnCNdC4jOCteKo4crUvLmPFz3YGi2K15Wyx+aQ/owt2tWFD0KQWxsHTfezUNgtaH/lGFPwVh//q1LnyGJVc/GwKiZtMXjy2dOZ2ryVr4w0vl59gZij3Y3mVxTqQIDAQAB

alipay.notify_url=http://127.0.0.1:7002/alipay/notify

alipay.return_url=http://127.0.0.1:7002/alipay/return

alipay.sign_type=RSA2

alipay.gateway_url=https://openapi.alipaydev.com/gateway.do

实现原理:

(1)引入支付宝sdk:

(2)com.alipay.api.AlipayClient中的pageExecute(AlipayTradeWapPayRequest)

(3)支付宝同步回调程序中rest请求:/alipay/return,异步回调程序中rest请求:/alipay/notify. 同步与异步支付回调程序实际上是支付成功后的业务逻辑操作,在实际上,同步回调不一定执行,而异步回调一定会执行。

3 功能测试

3.1 单点登录测试

执行单点登录,在首页登录后,可直接进入个人中心系统,任务中心系统,支付服务系统,无须重新登录,登录界面如图6,登录成功如图7。

图6 登录界面图

图7 登录成功图

3.2 支付服务测试

使用支付宝sdk进行支付,支付系统如图8。

图8 支付系统图

通过输入金额,验证码,点击充值,跳转到扫码界面,扫码界面图9,支付成功图10,支付成功后返回界面如图11。

图9 扫码界面图

图10 支付成功图

图11 返回界面图

可以在支付系统查询充值记录,如图12。

图12 查询记录图

4 结束语

本文主要介绍了一个任务发放平台的开发流程,在业务代码上没有做过多的介绍。其设计上主要采用了Springboot,并结合Restful开发,将系统功能拆分为多个服务模块。通过这种设计方式,为后期系统扩展功能的开发提供了便利。项目总共有三大模块:权限认证服务,任务发布平台,支付服务。权限认证服务主要用于系统单点登录,任务发布平台主要用于收发任务,支付服务主要通过支付宝sdk网站进行扫码支付。目前由于任务发放平台任务收发存在部分问题,无法展开生产。对于以上问题,将会在日后学习中寻找解决方法,争取完成整个系统开发更加完善并且上线。

[1]冯广瑞.“互联网+”思维对企业管理创新的启示[J].科技风,2018,000(034):88-88.

[2]何军,陈贵民,黄惠海,郑汉军,陈思德.关于RESTful架构的设计[J].网络安全技术与应用,2019,000(001):37-37.

[3]赵亮.单点登录浅析[J].计算机光盘软件与应用,2013,000(004):189-191.

[4]汪天星,程耕国.基于B/S的扫码支付平台的设计[J].现代电子技术,2018,041(022):49-58.

[5]余杨奎.基于角色的访问控制模型(RBAC)研究[J].计算机技术与发展,2019,029(001):198-201.

2018年省级高等学校大学生创新创业训练计划项目。

猜你喜欢

单点界面功能
99Tcm-MIBI显像在甲状旁腺功能亢进术前诊断中的应用价值
单点渐进无模成型的回弹特性
精密单点定位在网络RTK中的应用研究
基层弄虚作假的“新功能取向”
把党史的功能作用发挥得更加充分有效
微重力下两相控温型储液器内气液界面仿真分析
国企党委前置研究的“四个界面”
奔驰S级香氛功能介绍
扁平化设计在手机界面中的发展趋势
单点的梦想