0

按照开发人员文档,我尝试了许多变体来实现这一点。

我想从令牌有效负载中提取标签,如果没有,我可以从 /me 响应正文中构建它。

这是我最近的尝试:

var jwtDecode = require('jwt-decode');

const getTokenFields = (z, bundle) => {
  var sub = jwtDecode(bundle.authData.token)['sub']
  console.log(sub)
  return sub;
};

const getLabelField = (z, bundle) => {
  var sub = jwtDecode(bundle.authData.token)['sub']['label']
  console.log(sub)
  return sub;
};

const authentication = {
    type: 'session',
    test: {
        url: '{{process.env.AP_HOST}}/me'
    },
    fields: [
        {
            key: 'token',
            type: 'string',
            required: true,
            helpText: 'See settings to get your token'
        }
    ],
    sessionConfig: {
        perform: getTokenFields
    },
    connectionLabel: {
        perform: getLabelField
    }
};

module.exports = authentication;

我唯一能去工作的是: connectionLabel: "{{bundle.authData.token}}",但它看起来很糟糕!

connectionLabel: "{{bundle.authData.responsefield}}"感觉它应该是应该工作的东西,但它也不是

4

1 回答 1

0

大卫在这里,来自 Zapier 平台团队。

而不是connectionLabel: {perform: getLabelField},它应该只是connectionLabel: getLabelField。您还可以使用从包中提取的字符串(如您所见)或从指定测试端点返回的任何数据(参见此处)。

应该有验证可以防止您拥有什么(运行时会出错zapier validate),但如果恢复正常,那么一定要让我们知道。

于 2018-08-06T22:49:17.993 回答