用友U8接口-接口配置&Token访问令牌(2)

概括

  1. 本文的操作需要正确部署U8HttpApi ,绑定IIS端口
  2. 配置webapi接口
  3. 获取erp账套信息
  4. 获取token访问令牌
  5. 传入JSON的参数如何设置

接口配置

接口配置

1.redis

  1. 接口依赖redis作为缓存,此处配置redis的地址。若在Windows安装了redis,默认位置C:\Program Files\Redis,文件redis.windows-service.conf配置requirepass
    redis密码

2.数据库

  1. 若使用本地默认sqlserver,默认就是127.0.0.1,1433,1433就是默认端口
  2. 若使用数据库服务器,此时ip和端口就是数据库服务器信息

3.ERP的IP

  1. 若本套接口部署在ERP应用服务器的iis,此时ip就是127.0.0.1
  2. 若本套接口部署在ERP客户端电脑iis,此时ip就是不是127.0.0.1,而是ERP应用服务器IP

4.数据库账号和密码

  1. 此配置就是上面第二点配置的数据库账号信息,可以为只读账号。
  2. 默认数据库账号需要有查询权限,应用在查询类接口,而不需要构建erp登录。

5.redis缓存过期时间

  1. 设置token令牌redis缓存过期时间,需要为整数表示小时。
  2. 若值为0表示所有token缓存不会自动删除
  3. 若值为0表示所有token缓存将持久化存储(V20240818更新)
  4. 若token过期时间在20分钟内,再次请求有鉴权的接口,token将自动刷新缓存时间(V20240818更新)
  5. 建议一:若你的客户端将本套接口作为直接后端服务,可以设置为2/4,token会自动刷新,相当于20分钟客户端没请求接口需要重新获取访问令牌,此时跳转客户端登录界面。
  6. 建议二:若想简单粗暴些,不想频繁获取token,或者本套接口对外开放授权外部系统调用,那么此值可以配置为0。此值为0表明若用户密码不改,则token不会过期

6.ERP数据源

数据源

7.接口管理员

  1. V20240818版本更新
  2. 部分接口只能此用户访问

8.ERP服务地址

  1. 部分服务直接调用ERP的webservice服务

Token

  1. 访问有鉴权的接口,必须先获取token令牌

ERP登录方式

erp登录界面

  1. 首先了解erp登录界面,需要上述截图的五个信息。这些信息在接口中会作为参数请求erp登录模块,校验用户账号&密码,验证通过则存储输入参数到redis中,返回一个uuid字符串作为token。
  2. ERP服务器信息,在上面接口配置中已经设置好

获取ERP账套信息

方式一

查看数据库,UFDATA开头的就是账套数据库
账套数据库

方式二

  1. 接口部署完后调用接口/api/System/GetU8Account,将调用默认数据库配置抓取ERP账套数据库信息返回
    调用接口
    此接口返回所有erp账套数据库信息
    在这里插入图片描述

获取访问令牌

在这里插入图片描述

  1. 接口URL:/api/System/GetToken,为POST请求,完整http地址为http://服务器IP:端口/api/System/GetToken
  2. 接口参数:
    U8DbName(erp账套数据库,必填)
    LoginDateTime(登录时间,V20240818版本改为非必填,默认请求服务器当时日期)
    sUserId(用户名,必填)
    sPassword(密码,必填)
    bPersist(是否持久化token,V20240818版本新增,非必填,若true则token不会过期。)
{
	"U8DbName": "UFDATA_999_2014",
	"LoginDateTime": "2024-08-10 20:00:00",
	"sUserId": "001",
	"sPassword": "123",
	"bPersist":true
}
  1. 接口调用:输入正确的用户信息,将返回Token访问令牌
    在这里插入图片描述

访问有鉴权接口

鉴权
hear

  1. 需要将token放入http请求头中,否则返回401

获取用户持久化token

  1. V20240818功能新增
  2. 接口url:/api/UserAccess/LoadUserPersistToken?userId=xxx,仅为接口管理员可访问
  3. 获取用户持久化token列表,userId(ERP账号)为空则返回所有数据

访问权限控制

权限控制

  1. V20240818功能新增
  2. 此功能在于控制用户的接口权限,仅为辅助控制,最终还得根据ERP权限为准,举例:设置某用户有新增某个单据权限,不代表ERP中此用户有权限新增!!
  3. 在接口对外开放第三方系统时,建议设置!

设置访问权限

{
	"userId": "001", //ERP用户账号
	"controller": "/api/OtherIn", //接口路由
	"actions": "Add" //接口动作,应为逗号间隔
}

其他入库单权限

  1. 接口url:/api/UserAccess/Set,仅为接口管理员可访问
  2. actions参数:* 为允许访问全部控制器(单据)方法,空值则不允许访问控制器(单据)所有方法

获取访问权限

  1. 接口url:/api/UserAccess/Load?userId=xxx,仅为接口管理员可访问
  2. 返回
{
	"code": 0,
	"msg": "OK",
	"data": [
		{
			"user_id": "002",
			"controller": "/api/System",
			"actions": "SqlQuery,SqlQuery2,SqlQuery3"
		},
		{
			"user_id": "002",
			"controller": "/api/System2",
			"actions": "SqlQuery,SqlQuery2,SqlQuery3"
		}
	]
}

清空访问权限

  1. 接口url:/api/UserAccess/Clear?userId=xxx, 仅为接口管理员可访问
  2. 清空访问权限限制,也就是说调用成功后,此用户不受访问控制!

总结和建议

  1. 本次介绍了获取token方式,当本套接口对外开放其他时,可以在请求token时加入持久化参数,将返回token给外部系统即可,然后通过权限控制来限制此token用户可访问的接口!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值