1

什么?

我目前正在使用 chatkit 构建一个反应本机应用程序,但是身份验证似乎失败并不断返回以下消息:Instance ID in the path and the access token don't match

我使用 Laravel 作为后端并有以下路线: Route::post('/chatkit-auth-user', 'API\MessagesController@authenticateChatkitUser');

在此方法中,我根据用户 ID 对用户进行身份验证,如下所示:

public function authenticateChatkitUser(Request $request)
{
    $userId = $request->input('user_id');
    $authData = $this->chatkit->authenticate([
        'user_id' => "{$userId}",
    ]);

    return response()
        ->json(
            $authData['body'],
            $authData['status']
        );
}

生成令牌,然后显然将其传递给 TokenProvider 实例,如下所示:

const url = 'https://my-endpoint.com/api/chatkit-auth-user';
const userToken = this.state.user.authToken;
const tokenProvider = new Chatkit.TokenProvider({
  url,
  headers: {
    Authorization: 'Bearer ' + userToken,
    'Content-Type': 'application/json',
  },
});
const chatManager = new Chatkit.ChatManager({
  instanceLocator: '<MY_INSTANCE_LOCATOR_ID>',
  userId: `${this.state.user.userId}`,
  tokenProvider: tokenProvider
});

chatManager.connect().then(currentUser => {
  this.state.currentUser = currentUser;
  console.log(currentUser);
  this.currentUser.subscribeToRoom({
    roomId: CHATKIT_ROOM_ID,
    hooks: {
      onNewMessage: this.onReceive.bind(this)
    }
  });
});

currentUser永远不会得到安慰,并且总是返回带有标题中消息的 403。从文档中,我认为我已经正确实现了所有内容,我什至用https://github.com/pusher/chatkit-server-node扩展了一个heroku应用程序,同样的问题仍然存在。我花了几天时间试图弄清楚这一点,如果我做错了什么,如果我能得到一些指导,我将不胜感激!

4

0 回答 0