什么?
我目前正在使用 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应用程序,同样的问题仍然存在。我花了几天时间试图弄清楚这一点,如果我做错了什么,如果我能得到一些指导,我将不胜感激!