【问题标题】:url signature missing or invalid getstreamurl 签名丢失或无效的 getstream
【发布时间】:2016-02-10 18:51:47
【问题描述】:
var client = stream.connect('my-client-id', null, '7723');

var user1 = client.feed('flat', 'my-client-id', 'NuAW6yHVQ2sr9RQvBE-cCuewUlo'); // What is this token param (3rd one)? How is this generated?

var acticity = {
  actor: 'QUXdERFPto', 
  tweet: 'Hello world', 
  verb: 'tweet', 
  object: 1
}

user1.addActivity(acticity).then(null).catch(function(e) {
   // Error object is
   // code: null
   // detail: "url signature missing or invalid"
   // duration: "10ms"
   // exception: "AuthenticationFailed"
   // status_code: 403
});

我缺少什么签名?

【问题讨论】:

    标签: javascript getstream-io


    【解决方案1】:

    Stream-JS 客户端提要令牌

    在客户端上使用 stream-js 库时,您应该在没有密钥的情况下启动连接,以避免与世界共享您的私钥(其秘密)。

    var client = stream.connect('api-key', null, 'app-id');
    

    以这种方式启动客户端不允许您从此客户端创建的任何提要中读取或写入,因此当您尝试从中读取或写入时,以下提要将返回 403 错误。

    client.feed('flat', 'user-id');
    

    但如果您在服务器端生成read/write token,您可以使用此令牌启动提要并允许从客户端读取/写入:

    client.feed('flat', 'user-id', 'read/write token');
    

    要在服务器上生成读/写令牌,请使用您的密钥启动客户端并调用以下方法:

    var client = stream.connect('api-key', 'api-secret', 'app-id');
    
    var readToken = client.getReadOnlyToken('flat', 'user-id');
    var readWriteToken = client.getReadWriteToken('flat', 'user-id');
    

    将这些令牌之一提供给您的客户并使用此令牌创建一个提要实例。

    何时在客户端使用 Stream-JS

    然而,在大多数用例中,您希望在服务器端使用stream-js 客户端并在那里检索/发布活动,使用存储在本地数据库中的数据丰富这些活动并将其发送到客户端。在客户端使用 stream-js 的一个用例是realtime notifications

    【讨论】:

    • 我得到了和上面一样的错误。我的应用程序在 Reactjs+webpack(100% 客户端)上运行我可以使用流 api,因为我可以使用 api 密钥/令牌,但我遇到了错误。在不移动到服务器端的情况下我应该怎么做(我不能)
    猜你喜欢
    • 2016-02-19
    • 2014-12-16
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 2017-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多