我正在尝试使用Alamofire(SWIFT)来请求我的Netsuite RESTlet,但遇到一些困难: 在文档中,指定了所需的不同参数(请参见下文)。
文档:
OAuth 1.0 RESTlet授权标头需要下表中描述的数据。这些值中的一些可以从NetSuite UI中获得。必须计算其他值。通常,您的集成应包括识别这些值并生成完成的标头的逻辑。遵循OAuth 1.0协议创建授权标头。
但是在邮递员中,我使用了额外的参数(消费者机密和令牌机密),如果我删除它们,它会起作用
要完成检查邮递员生成的Authorization标头的操作,我只能在文档中看到指定的参数:
OAuth realm="my realm",oauth_consumer_key="myConsumerKey",oauth_token="myAccessToken",
oauth_signature_method="HMAC-SHA1",oauth_timestamp="1543488570",
oauth_nonce="ERxdLbUfkeh",oauth_version="1.0",oauth_signature="UeqmxAyeUqtPoICLo%2FARsQE8B1E%3D"
如果有人可以向我解释这一点,则可以在我的应用程序中实现TBA身份验证,但现在我需要更好地了解此身份验证。
答案 0 :(得分:1)
答案 1 :(得分:1)
SuiteAnswer 42019中显示了为何邮递员需要消费者秘密和令牌秘密来生成令牌的解释-如上面屏幕快照中oauth_signature旁边的“注释”部分所述。来自that page:
- 使用通过“&”(在这种情况下,为HMAC-SHA1或HMAC-256)连接的使用者密钥和令牌密钥对第5步中的结果字符串进行签名。
换句话说,邮递员使用这些机密来生成对您的凭据进行身份验证的输出-如果没有它们,您将无法正确生成oauth_signature。
答案 2 :(得分:0)
我还遇到了NetSuite断开的RESTlet / TBA连接断开的许多问题。我确实在我们的软件中构建了此功能以帮助客户。您可以在下面的文章中看到我使用的方法。
Using NetSuite TBA by Calling a RESTlet from an HTTP Source or Target