我在使用ConnectyCube REST API进行用户管理时遇到了一个令人困惑的问题。我的代码成功地为操作生成了签名,例如创建app session token
,但当试图创建user session token
时,服务器总是返回“unexpected signature”错误。
下面是我用来生成签名的方法:
const getSignature = () => {
const nonce = Math.floor(Math.random() * 1000000);
const timestamp = Math.floor(Date.now() / 1000);
const stringForSignature = `application_id=${config.applicationId}&auth_key=${config.authKey}&nonce=${nonce}×tamp=${timestamp}`;
const signature = crypto.createHmac('sha1', config.authSecret).update(stringForSignature).digest('hex');
return { signature: signature, timestamp: timestamp, nonce: nonce };
}
字符串
签名生成似乎正常工作,因为我可以使用它成功创建应用会话令牌:
const getAppSessionToken = async () => {
const signature = getSignature();
const response = await axios.post(
'https://api.connectycube.com/session', {
'application_id': config.applicationId,
'auth_key': config.authKey,
'nonce': signature.nonce,
'timestamp': signature.timestamp,
'signature': signature.signature
}, { headers: { 'Content-Type': 'application/json' } });
return response.data.session.token;
}
型
但是,当尝试创建用户会话令牌时,服务器会返回“unexpected signature”错误:
const createSessionWithLogin = async (emailAddress, password) => {
const signature = getSignature();
return await axios.post(
'https://api.connectycube.com/session',
{
'application_id': config.applicationId,
'auth_key': config.authKey,
'nonce': signature.nonce,
'timestamp': signature.timestamp,
'signature': signature.signature,
'user': {
'email': emailAddress,
'password': password
}
},
{
headers: {
'Content-Type': 'application/json'
}
}
);
}
型
我将非常感谢您对可能导致此问题的原因的任何见解或故障排除的建议。谢谢!
1条答案
按热度按时间nhjlsmyf1#
您可以通过此代码获取用户令牌
字符串
结果