|  |  | ## 1.Token简介 | 
|  |  | 1. token是门户获取数值的一种方式,可以使用简单表达式获取想要的数据 | 
|  |  | 2. token表达式: | 
|  |  | ``` | 
|  |  | [ ] | 
|  |  | ``` | 
|  |  |  | 
|  |  | 3. 可以在token [ ]里使用的标识符: | 
|  |  |  | 
|  |  | ``` | 
|  |  | $.g.变量名 // 获取后台定义的全局变量 | 
|  |  | ``` | 
|  |  |  | 
|  |  |  | 
|  |  | ``` | 
|  |  | $.v.变量名 // 获取api配置本身的变量值 | 
|  |  | ``` | 
|  |  |  | 
|  |  |  | 
|  |  | ## 2.Token 列表 | 
|  |  | #### 2.1 API token | 
|  |  | 支持开发人员自定义services,可以通过 | 
|  |  | ``` | 
|  |  | [api:svc:*] //调用 | 
|  |  | [api:svc:服务器名称::方法(参数1,参数2)] //格式 | 
|  |  | [api:svc:pm.parser::getApiResponseData(5,access_token)] //例子 获取接口id等于5的响应数据,然后从响应数据里获取字段为access_token的数据 | 
|  |  | ``` | 
|  |  |  | 
|  |  | ##### 1. 从某个接口里的响应数据里获取特定字段的值 | 
|  |  | ``` | 
|  |  | [api:response:5,access_token]  //获取接口id等于5的响应数据,然后从响应数据里获取字段为access_token的数据 | 
|  |  |  | 
|  |  | ``` | 
|  |  | ##### 2. 获取前端通过get传入的参数数据值 | 
|  |  |  | 
|  |  | ``` | 
|  |  | [api:url_args:user_id]  // ?id=1&user_id =5 ,返回5 | 
|  |  | ``` | 
|  |  |  | 
|  |  | ##### 3. 获取API配置中的数据 | 
|  |  |  | 
|  |  | 前面md5str的值,这是就可以整个token获取 | 
|  |  |  | 
|  |  |  | 
|  |  | ``` | 
|  |  | [api:settings:new_settings.host{0}] // 一下是api配置数据集合,获取其中host的数据 | 
|  |  | ``` | 
|  |  |  | 
|  |  | ``` | 
|  |  | settings: | 
|  |  | api: | 
|  |  | etl_config: | 
|  |  | source: | 
|  |  | host: 172.18.0.4 | 
|  |  | port: '1433' | 
|  |  | database: users | 
|  |  | user: root | 
|  |  | pass: '12344' | 
|  |  | character_set: UTF-8 | 
|  |  | fields: | 
|  |  | - name: INFO | 
|  |  | label: Info name | 
|  |  | selector: INFO | 
|  |  | - name: [api:settings:new_settings.host.{0}]   //就获取host的值 | 
|  |  | label: seq label | 
|  |  | selector: SEQ | 
|  |  | ids: | 
|  |  | INFO: | 
|  |  | type: string | 
|  |  | sql_query: SELECT top 6 INFO,SEQ FROM HELP | 
|  |  | plugin: sqlsrv | 
|  |  | api_id: '18' | 
|  |  | process: | 
|  |  | name: | 
|  |  | - plugin: get | 
|  |  | source: name | 
|  |  | mydata: | 
|  |  | - plugin: get | 
|  |  | source: data | 
|  |  | destination: | 
|  |  | plugin: api_response_data | 
|  |  | id: api_id_18 | 
|  |  | label: mssql连接示例 | 
|  |  | migration_group: API | 
|  |  | id: '18' | 
|  |  | type: sqlsrv | 
|  |  | status: 1 | 
|  |  | title: mssql连接示例 | 
|  |  | url_alias: "/portal/api/v2/mssql/demo" | 
|  |  | access_roles: | 
|  |  | - authenticated | 
|  |  | new_settings: | 
|  |  | - | 
|  |  | host: 172.18.0.4 | 
|  |  | - | 
|  |  | database: test | 
|  |  |  | 
|  |  | ``` | 
|  |  |  | 
|  |  |  | 
|  |  | ##### 5. 生成 RSA 加密 | 
|  |  | - data: 要加密的数据,可以同获取全局变量 $.g.vars_name,或者其自己api配置变量 $.v.new_settings.var_name{0} | 
|  |  | - $private_key: 可以在后台定义全局变量,使用$.g.vars_name获取 | 
|  |  | - $algo: 加密方式: RS256 等 | 
|  |  | - callable: 默认 bin2hex ,可以是其他形式转换比如 base64_encode | 
|  |  |  | 
|  |  | ``` | 
|  |  | [api:openssl_sign:data,private_key,algo,callable] // | 
|  |  | ``` | 
|  |  |  | 
|  |  | ##### 6.调用php基本函数或者自定义函数 | 
|  |  | - $value 支持 $.v.new_settings  和 $.g.vars_name 获取 | 
|  |  | - $callable 具体的函数名称 比如 md5、strtotime等 | 
|  |  |  | 
|  |  | ``` | 
|  |  | [api:callback:md5,100022] // md5 加密 | 
|  |  | [api:callback:strtotime, +30 days] // 时间戳 当前时间加上30天 | 
|  |  | ``` | 
|  |  |  | 
|  |  | ##### 7. 获取全局变量 | 
|  |  | - key 要获取具体变量的值 | 
|  |  |  | 
|  |  | ``` | 
|  |  | [api:global_vars:key] // | 
|  |  |  | 
|  |  | ``` | 
|  |  | - 如何在token里就获取全局变量等值 | 
|  |  | 使用 $.g.变量名 | 
|  |  |  | 
|  |  | ``` | 
|  |  | [api:callback:md5,$.g.变量名称] // | 
|  |  | ``` | 
|  |  |  | 
|  |  |  | 
|  |  | ##### 8. 获取数据库config的值 | 
|  |  | - name : config定义的名称 | 
|  |  | - key: 需要获取的变量名称 | 
|  |  |  | 
|  |  | ``` | 
|  |  | [api:config:portal_api_id,title] // 例:从数据库获取portal_api_id里等title值 | 
|  |  |  | 
|  |  | ``` | 
|  |  |  | 
|  |  | ##### 9. jwt格式加密 | 
|  |  | - header: 默认值: $.g.yfy_header 通过全局变量获取header,header在后台全局变量里配置 | 
|  |  | - playload: 默认值: $.g.yfy_playload 在后台全局变量里配置 | 
|  |  | - sercet: 默认值: $.g.yfy_sercet  在后台全局变量里配置 | 
|  |  | - algo: RS256等 | 
|  |  |  | 
|  |  | ``` | 
|  |  | [api:jwt_signature:header,playload,sercet,algo] //格式 | 
|  |  | [api:jwt_signature:$.g.yfy_header,$.g.yfy_playload,$.g.yfy_sercet ,RS256] //例子 | 
|  |  |  | 
|  |  | ``` | 
|  |  |  | 
|  |  |  | 
|  |  | #### 2.1. 当前时间 | 
|  |  |  | 
|  |  | ``` | 
|  |  | HTML 周 	[current-date:html_week] 	一个格式是 'html_week' 的日期。 (2020-W33) | 
|  |  | HTML 年份 	[current-date:html_year] 	一个格式是 'html_year' 的日期。 (2020) | 
|  |  | HTML 无年份日期 	[current-date:html_yearless_date] 	一个格式是 'html_yearless_date' 的日期。 (08-14) | 
|  |  | HTML 日期 	[current-date:html_date] 	一个格式是 'html_date' 的日期。 (2020-08-14) | 
|  |  | HTML 日期与时间 	[current-date:html_datetime] 	一个格式是 'html_datetime' 的日期。 (2020-08-14T20:03:56+0800) | 
|  |  | HTML 时间 	[current-date:html_time] 	一个格式是 'html_time' 的日期。 (20:03:56) | 
|  |  | HTML 月份 	[current-date:html_month] 	一个格式是 'html_month' 的日期。 (2020-08) | 
|  |  | 中格式 	[current-date:medium] 	'中'格式的日期。(周五, 08/14/2020 - 20:03) | 
|  |  | 原始时间戳 	[current-date:raw] 	UNIX时间戳格式日期(1597406636) | 
|  |  | 回滚日期格式 	[current-date:fallback] 	一个格式是 'fallback' 的日期。 (周五, 08/14/2020 - 20:03) | 
|  |  | 开始时间 	[current-date:since] 	'开始' 格式日期。(6 分钟) | 
|  |  | 短格式 	[current-date:short] 	'短'格式的日期。(08/14/2020 - 20:03) | 
|  |  | 自定义格式 	[current-date:custom:?] 	定制格式的日期。请参阅 PHP 文档以获取详细信息。 | 
|  |  | 长格式 	[current-date:long] 	长格式的日期。(星期五, 八月 14, 2020 - 20:03) | 
|  |  | ``` | 
|  |  | #### 2.2 当前用户 | 
|  |  |  | 
|  |  |  | 
|  |  | ``` | 
|  |  | Department  [current-user:field_department] 	实体引用 字段。 | 
|  |  | Full Name 	[current-user:field_full_name] 	纯文本 字段。 | 
|  |  | IP地址 	    [current-user:ip-address] 	The IP address of the current user. | 
|  |  | 用户名 	    [current-user:name] 	    改为使用帐户名称或显示名称。 | 
|  |  | 头像 	    [current-user:user_picture] 	图像 字段。 | 
|  |  | 已建立  	[current-user:created] 	此用户账户创建的日期。 | 
|  |  | 显示名称 	[current-user:display-name] 	用户账号的显示名 | 
|  |  | 最后登录 	[current-user:last-login] 	用户最近登录到此站点的日期。 | 
|  |  | 源 用户 	[current-user:original] 	The original 用户 data if the 用户 is being updated or saved. | 
|  |  | 用户 ID 	[current-user:uid] 	用户账户的唯一ID。 | 
|  |  | 电子邮件 	[current-user:mail] 	用户账户的电子邮件地址。 | 
|  |  | 编辑网址 	[current-user:edit-url] 	帐户编辑页面的URL链接。 | 
|  |  | 网址    	[current-user:url] 	账户资料页面的URL。 | 
|  |  | 角色 	    [current-user:roles] 	与用户账号相关联的的用户角色。 | 
|  |  | 账户名称 	[current-user:account-name] | 
|  |  | ``` | 
|  |  |  | 
|  |  | #### 2.3 随机数 | 
|  |  |  | 
|  |  |  | 
|  |  | ``` | 
|  |  | 哈希 	[random:hash:?] 	一个随机的哈希。可能的算法为: md2, md4, md5, sha1, sha224, sha256, sha384, sha512/224, sha512/256, sha512, sha3-224, sha3-256, sha3-384, sha3-512, ripemd128, ripemd160, ripemd256, ripemd320, whirlpool, tiger128,3, tiger160,3, tiger192,3, tiger128,4, tiger160,4, tiger192,4, snefru, snefru256, gost, gost-crypto, adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat, haval128,3, haval160,3, haval192,3, haval224,3, haval256,3, haval128,4, haval160,4, haval192,4, haval224,4, haval256,4, haval128,5, haval160,5, haval192,5, haval224,5, haval256,5。 | 
|  |  | 数字 	[random:number] 	一个从 0 到 2147483647 的随机数。 | 
|  |  | ``` | 
|  |  |  | 
|  |  | #### 2.4 站点信息 | 
|  |  |  | 
|  |  |  | 
|  |  | ``` | 
|  |  | Login page 	[site:login-url] 	网站登录页网址。 | 
|  |  | URL(简短) 	[site:url-brief] 	未使用协议的站点首页的链接地址。 | 
|  |  | 名称 	    [site:name] 	网站的名称。 | 
|  |  | 电子邮件 	[site:mail] 	该网站管理员的电子邮件地址。 | 
|  |  | 站点口号 	[site:slogan] 	网站的口号。 | 
|  |  | 网址 	    [site:url] 	网站的首页网址。 | 
|  |  | ``` |