Les logs contiendront les token de notifications concernés par la notification.
Extraction des tokens de notifications push par personne
Les tokens de notification push sont stockés dans les user préférences d'Ametys. Il est possible d'extraire les tokens pour chaque personne.
Ce script permet d'obtenir l'identifiant de connexion de chaque personne inscrite aux notifications push de l'app mobile:
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
let population = "utilisateurs";
const UserPreferencesHelper = Ametys.serviceManager.lookup("org.ametys.plugins.mobileapp.UserPreferencesHelper");
printNotificationTokens("loginDeLUtilisateur");
function printNotificationTokens(login){
let user = org.ametys.core.user.UserIdentity.stringToUserIdentity(`${login}#${population}`);
Ametys.console.log(login+":"+UserPreferencesHelper.getNotificationTokens(user).toString());
}
let population = "utilisateurs";
const UserPreferencesHelper = Ametys.serviceManager.lookup("org.ametys.plugins.mobileapp.UserPreferencesHelper");
printNotificationTokens("loginDeLUtilisateur");
function printNotificationTokens(login){
let user = org.ametys.core.user.UserIdentity.stringToUserIdentity(`${login}#${population}`);
Ametys.console.log(login+":"+UserPreferencesHelper.getNotificationTokens(user).toString());
}
let population = "utilisateurs";
const UserPreferencesHelper = Ametys.serviceManager.lookup("org.ametys.plugins.mobileapp.UserPreferencesHelper");
printNotificationTokens("loginDeLUtilisateur");
function printNotificationTokens(login){
let user = org.ametys.core.user.UserIdentity.stringToUserIdentity(`${login}#${population}`);
Ametys.console.log(login+":"+UserPreferencesHelper.getNotificationTokens(user).toString());
}
Remplacer "loginDeLUtilisateur" par le login de l'utilisateur. Il est possible de mettre autant de ligne printNotificationTokens("loginDeLUtilisateur"); que souhaité pour obtenir les token de chacune de ces personnes.
Revoker un token (A ne pas confondre avec les token de notifications)
Lorsqu'un utilisateur s'authentifie sur l'app mobile, un token personnel et dédié à l'app mobile lui est attribué. C'est ce token qui permet ensuite à l'utilisateur de s'authentifier via l'application mobile.
Les tokens sont stockés en base de données dans la table Authentication_Token, ils sont encodés pour éviter qu’une personne qui lit la base de données soit en mesure d’utiliser le token.
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
Tous les token créés pour l’application mobile ont pour type ‘mobileapp’.
Pour supprimer tous les token d’un utilisateur à partir de son login pour l’application mobile :
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
delete from Authentication_Token where type='mobileapp' and login='xxx';
delete from Authentication_Token where type='mobileapp' and login='xxx';
delete from Authentication_Token where type='mobileapp' and login='xxx';
Il est possible de forcer la suppression des token de manière automatique à l’aide d’un script shell lancé dans un crontab par exemple en se basant sur la date de création pour supprimer tous les token mobile app qui sont plus vieux que 6 mois.
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
delete from Authentication_Token where type='mobileapp' and creation_date < date_sub(now(), Interval 6 month);
delete from Authentication_Token where type='mobileapp' and creation_date < date_sub(now(), Interval 6 month);
delete from Authentication_Token where type='mobileapp' and creation_date < date_sub(now(), Interval 6 month);