Users

Introduction

L'api users sert à obtenir et modifier les donnés des utilisateurs.

Structure

Objet utilisateur

Champ

Type

Modifiable

Description

id

string

Identifiant unique, voir identifiants uniques.

username

string

Pseudonyme

avatar

?string

ID de l'avatar, voir Fichiers,null si l'utilisateur n'a pas d'avatar.

email

string

Adresse email. Requiert le scope supplémentaire email

first_name

string

Prénom. Requiert le scope supplémentaire personal

last_name

string

Nom de famille. Requiert le scope supplémentaire personal

verified

bool

Si l'adresse email à été ou non vérifiée

public_flags

int

La liste des drapeaux publics, voir Drapeaux.

?flags

int

La liste des drapeaux de l'utilisateur, voir Drapeaux.

N'est disponible que pour les applications officielles.

Objet résumé de sécurité

Champ

Type

Description

verified

bool

Si l'utilisateur à vérifié son email.

secure_login

bool

Si l'utilisateur dispose d'une méthode de connexion plus sécurisée que le mon de passe.

mfa_enabled

bool

Si l'utilisateur à activé au moins une méthode d'authentification à deux facteurs.

methods

object

Un objet méthodes de connexions.

Objet méthodes de connexions

Champ

Type

Description

first_factors

string[]

La liste des méthodes d'authentifications de premiers facteurs, voir méthodes d'authentification.

second_factors

string[]

La liste des méthodes d'authentifications de second facteurs, voir méthodes d'authentification.

third_parties

string[]

Liste des fournisseurs d'identité tierce liés au compte de l'utilisateur, voir fournisseurs d'identité tierces.

Drapeaux

Les drapeaux sont des états cumulables qu'un utilisateur peut avoir, il sont stockés dans un entier via des opérations sur les bits.

Liste des drapeaux

Valeur

Drapeau public

Description

0x1

Administrateur

0x2

Membre de l'association Edu-Focus

0x100

Drapeau interne¹

¹ Ce drapeau n'est utile que pour le bon fonctionnement des services d'Edu-Focus.

Opération sur les drapeaux

Voici quelque exemples d'opérations possible sur les drapeaux:

#Tester si un utilisateur n'a pas de drapeaux
flags == 0x0
#Tester si un utilisateur à un flag
(flags & 0x1) == 0x1 #True > l'utilisateur à le flag "Administrateur"

Méthodes d'authentification

Nom

Type

Description

password

Premier facteur

Mot de passe à utiliser lors de la connexion.

platform

Premier facteur

Appareil/OS (windows hello en général) lors de la connexion.

hardware

Premier facteur

Clé de sécurité lors de la connexion.

totp

Second facteur

Application d'authentification pour vérifier l'identité de l'utilisateur.

phone

Second facteur

Envoie d'un sms numéro prédéfini pour vérifier l'identité de l'utilisateur.

Fournisseurs d'identité tierces

Identifiant

Nom

ENT¹

Accès au donnés²

google

Google

discord

Discord

github

GitHub

ent.mon-ent-occitanie

Mon ENT Occitanie

¹ Ce fournisseur est un Espace de Travail Numérique ² Cela veut dire qu'Edu-Focus à accès à certaines donnés personnelles enregistré sur le fournisseur d'identité. En revanche à aucun moment le fournisseur d'identité n'à accès aux donnés stockés sur Edu-Focus.

Endpoints de l'api

L'api dispose des endpoints suivants pour les utilisateurs:

Utilisateur actuel:

Utilisateurs:

  • GET - Obtenir un utilisateur² (non disponible actuellement)

¹ Cette action requière un token obtenu via un écran d'autorisation. ² Votre application doit obtenir une permission spéciale pour faire cette action.

get
Obtenir l'utilisateur actuel

https://api.edu-focus.org/users/@current
Permet d'obtenir l'utilisateur actuel, requière au minium le scope identity
Request
Response
Request
Headers
Authorization
required
string
Entête d'autorisation de type Bearer obtenu par OAuth 2.0.
Response
200: OK
Les champs peuvent varier en fonction des scopes demandés lors de l'obtention du token. Pour une liste exhaustive, consultez l'objet utilisateur ci-dessus.
{
"code": 200,
"status": "success"
"payload": {
"id": "3KX0TDpR",
"username": "Developer",
"email": "dev@edu-focus.org",
"avatar": null,
"verified": true
}
}

patch
Modifier l'utilisateur actuel

https://api.edu-focus.org/users/@current
Modifie l'utilisateur actuel, requière le scope modify
Request
Response
Request
Headers
Authorization
required
string
Entête d'autorisation de type Bearer obtenu par OAuth 2.0
Body Parameters
username
optional
string
Nouveau nom d'utilisateur
first_name
optional
string
Nouveau prénom
last_name
optional
string
Nouveau nom
avatar
optional
string
Nouvel avatar Doit être un identifiant de fichier temporaire (voir le sujet Fichiers)
Response
204: No Content
Contenu mis à jour
Aucun corps de réponse
304: Not Modified
Aucune modification n'a été nécessaire
{
"code": 0,
"message": "Nothing modified"
}
400: Bad Request
La requête est invalide. Pour voir les codes d'erreurs, voir la page Codes.
{
"code": 0,
"message": "The error"
}

Seules les applications vérifiés peuvent modifier les comptes des utilisateurs.

get
Obtenir le résume de sécurité

https://api.edi-focus.org/users/@current/security
Permet d'obtenir les détails sur la sécurité du compte de l'utilisateur.
Request
Response
Request
Headers
Authorization
required
string
Entête d'autorisation de type Bearer obtenu par OAuth 2.0
Response
200: OK
Un objet résumé de sécurité
{
"verified": true,
"secure_login": true,
"mfa_enabled": true,
"methods": {
"third_parties": [
"google",
"discord",
"github"
],
"first_factors": [
"hardware",
"platform",
"password"
],
"second_factors": [
"phone",
"totp"
]
}
}