在开发人员文档之后,我尝试了很多尝试来实现这一目标。
我想从令牌有效负载中提取标签,如果不是,我可以从/ 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}}"
感觉它应该是应该工作的东西,但它也不是
大卫来自Zapier平台团队。
而不是connectionLabel: {perform: getLabelField}
,它应该只是connectionLabel: getLabelField
。您还可以使用从捆绑中拉出的字符串(如您所见)或从指定的测试端点返回的任何数据(请参阅here)。
应该有一个验证可以阻止你拥有的东西(当你运行zapier validate
时会出现错误)但是如果它恢复干净那么绝对让我们知道。