用友U8接口-接口配置Token访问令牌(2)
概括本文的操作需要正确部署U8HttpApi 绑定IIS端口配置webapi接口获取erp账套信息获取token访问令牌传入JSON的参数如何设置接口配置1.redis接口依赖redis作为缓存此处配置redis的地址。若在Windows安装了redis默认位置C:\Program Files\Redis文件redis.windows-service.conf配置requirepass2.数据库若使用本地默认sqlserver默认就是127.0.0.1,14331433就是默认端口若使用数据库服务器此时ip和端口就是数据库服务器信息3.ERP的IP若本套接口部署在ERP应用服务器的iis此时ip就是127.0.0.1若本套接口部署在ERP客户端电脑iis此时ip就是不是127.0.0.1而是ERP应用服务器IP4.数据库账号和密码此配置就是上面第二点配置的数据库账号信息可以为只读账号。默认数据库账号需要有查询权限应用在查询类接口而不需要构建erp登录。5.redis缓存过期时间设置token令牌redis缓存过期时间需要为整数表示小时。若值为0表示所有token缓存不会自动删除若值为0表示所有token缓存将持久化存储V20240818更新若token过期时间在20分钟内再次请求有鉴权的接口token将自动刷新缓存时间V20240818更新建议一若你的客户端将本套接口作为直接后端服务可以设置为2/4token会自动刷新相当于20分钟客户端没请求接口需要重新获取访问令牌此时跳转客户端登录界面。建议二若想简单粗暴些不想频繁获取token或者本套接口对外开放授权外部系统调用那么此值可以配置为0。此值为0表明若用户密码不改则token不会过期6.ERP数据源7.接口管理员V20240818版本更新部分接口只能此用户访问8.ERP服务地址部分服务直接调用ERP的webservice服务Token访问有鉴权的接口必须先获取token令牌ERP登录方式首先了解erp登录界面需要上述截图的五个信息。这些信息在接口中会作为参数请求erp登录模块校验用户账号密码验证通过则存储输入参数到redis中返回一个uuid字符串作为token。ERP服务器信息在上面接口配置中已经设置好获取ERP账套信息方式一查看数据库UFDATA开头的就是账套数据库方式二接口部署完后调用接口/api/System/GetU8Account将调用默认数据库配置抓取ERP账套数据库信息返回此接口返回所有erp账套数据库信息获取访问令牌接口URL/api/System/GetToken为POST请求完整http地址为http://服务器IP:端口/api/System/GetToken接口参数U8DbNameerp账套数据库必填LoginDateTime登录时间V20240818版本改为非必填默认请求服务器当时日期sUserId用户名必填sPassword密码必填bPersist是否持久化tokenV20240818版本新增非必填若true则token不会过期。{U8DbName:UFDATA_999_2014,LoginDateTime:2024-08-10 20:00:00,sUserId:001,sPassword:123,bPersist:true}接口调用输入正确的用户信息将返回Token访问令牌访问有鉴权接口需要将token放入http请求头中否则返回401获取用户持久化tokenV20240818功能新增接口url/api/UserAccess/LoadUserPersistToken?userIdxxx仅为接口管理员可访问获取用户持久化token列表userId(ERP账号)为空则返回所有数据访问权限控制V20240818功能新增此功能在于控制用户的接口权限仅为辅助控制最终还得根据ERP权限为准举例设置某用户有新增某个单据权限不代表ERP中此用户有权限新增在接口对外开放第三方系统时建议设置设置访问权限{userId:001,//ERP用户账号controller:/api/OtherIn,//接口路由actions:Add//接口动作应为逗号间隔}接口url/api/UserAccess/Set仅为接口管理员可访问actions参数* 为允许访问全部控制器(单据)方法空值则不允许访问控制器(单据)所有方法获取访问权限接口url/api/UserAccess/Load?userIdxxx仅为接口管理员可访问返回{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}]}清空访问权限接口url/api/UserAccess/Clear?userIdxxx仅为接口管理员可访问清空访问权限限制也就是说调用成功后此用户不受访问控制总结和建议本次介绍了获取token方式当本套接口对外开放其他时可以在请求token时加入持久化参数将返回token给外部系统即可然后通过权限控制来限制此token用户可访问的接口