2017-10-04 3 views
0

Nous avons des problèmes lors de l'initialisation des sessions dans Smooch. Nous avons créé avec succès un jeton JWT à l'aide de la portée au niveau du compte et nous avons créé un utilisateur (mycatalyst_test) à l'aide de l'API. Lorsque nous utilisons l'API, nous pouvons accéder et interroger l'utilisateur, créer des messages, etc. correctement.Impossible de se connecter à l'ID utilisateur de Web Messenger (étendue non valide)

Cependant, quand nous essayons de le messager initialiser web Smooch et connecter l'utilisateur:

Smooch.init({ 
appId: 'XXX', 
userId: 'mycatalyst_test', 
jwt: 'XXX', 
embedded: true 
}); 

Nous recevons l'erreur:

{"error":{"code":"forbidden","description":"Invalid scope"}} 

Nous avons vérifié la documentation et ne peut pas trouver une référence à l'erreur de portée Invalide ou au code interdit dans la documentation de Web Messenger, et nous pouvons utiliser la même clé JWT pour accéder aux informations via l'API, nous ne sommes donc pas sûrs de ce qui ne va pas.

Nous avons essayé d'utiliser la portée App plutôt que la portée Account pour générer une nouvelle clé JWT, mais cela ne fonctionnait pas non plus. Nous avons essayé d'utiliser l'ID Smooch plutôt que l'ID utilisateur, mais cela n'a pas fonctionné.

Nous sommes un peu lâches ici, donc j'apprécierais n'importe quel pointeur! (Nous faisons probablement quelque chose de stupide et d'évident!).

Répondre

0

Voir la documentation pour authenticating users. Lorsque vous fournissez un JWT à l'API login, vous devez utiliser une portée de appUser, sinon vous distribuerez des JWT à vos utilisateurs qui donneront accès à l'ensemble de votre compte/application!

jwt.sign({ 
    scope: 'appUser', 
    userId: userId 
}, 
SECRET, 
{ 
    header: { 
     alg: 'HS256', 
     typ: 'JWT', 
     kid: KEY_ID 
    } 
}); 

Il y a aussi cette note dans la section authorization de la documentation API REST:

An additional scope of appUser can also be used to authenticate users when using one of the Smooch native SDK integrations. For information on how and when to use this scope, see the guide for authenticating users.