Ce document est destiné à spécifier l'API qui sera consommée par les fournisseurs de services.
Les fournisseurs de services auront une API RESTful pour pouvoir consommer le service souhaité.
Pour vérifier si un token d'accès est valide et quelle est la portée avec laquelle il est compté, l'api suivant est défini.
Vous pouvez étendre cette structure en ajoutant des attributs au niveau supérieur du JSON. Si vous souhaitez utiliser ces attributs pour communiquer avec d'autres domaines, ils doivent être enregistrés dans le registre "OAuth Token Introspection Response".
Des réponses différentes doivent être générées pour le même token, selon la personne qui a effectué la demande. Pour éviter les fuites d'informations.
Celui qui effectue la demande de vérification peut mettre en cache la réponse. Mais court le risque que le token soit invalidé par inadvertance.
Pour plus d'informations, voir [RFC 6749] (https://tools.ietf.org/html/rfc6749).
REQUEST
HTTP Method:
POST
Root:
mcg/v1/tokeninfo
Headers:
Header |
Valeur |
Description |
Authorization |
$TYPE $JWT |
|
Content-type |
application/x-www-form-urlencoded |
Obligatoire. |
Body:
Champ |
Type |
Descripción |
token |
String |
Obligatoire. Token à vérifier |
token_type_hint |
String |
Optionnel. Token type. Permet une vérification plus rapide. Si elle n'est pas trouvée, le token doit être vérifié en ignorant ce champ. |
RESPONSE
Headers:
Header |
Valeur |
Description |
Content-type |
application/json |
Obligatoire. |
Body:
Champ |
Type |
Description |
active |
Boolean |
Obligatoire. Indique si le token est toujours valide ou, en contrepartie, s'il a expiré ou révoqué. |
scope |
String |
OPTIONNEL. Chaîne contenant la liste des étendues associées au token séparées par un espace. |
client_id |
String |
OPTIONNEL. Identifiant du client pour le client OAuth 2.0 qui a demandé ce token. |
username |
String |
OPTIONNEL. Identifiant lisible par l'homme pour le propriétaire de la ressource qui a autorisé ce token. |
token_type |
String |
OPTIONNEL. Type of the token as defined in Section 5.1 of OAuth 2.0 [RFC6749] (Bearer or Mac, no entendi si son solo estos 2 o se puede implementar adhoc). |
exp |
Integer timestamp |
OPTIONNEL. Indique quand le token expire, en comptant le temps en secondes à partir du 1er janvier 1970 UTC. |
iat |
Integer timestamp |
OPTIONNEL.Indique quand le token a été délivré, en comptant le temps en secondes à partir du 1er janvier 1970 UTC. |
nbf |
Integer timestamp |
OPTIONNEL. Indique à partir de quand le token sera activé, en comptant le temps en secondes à partir du 1er janvier 1970 UTC. |
sub |
String |
OPTIONNEL. Objet du token, tel que défini dans JWT [RFC7519]. Habituellement, un identifiant lisible par machine du propriétaire de la ressource qui a autorisé ce token. |
aud |
String |
OPTIONNEL. Identificateur de chaîne spécifique au service ou liste d'identificateurs de chaîne représentant le public visé pour ce token, tel que défini dans JWT [RFC7519] [RFC7519]. |
iss |
String |
OPTIONNEL. Chaîne représentant l'émetteur de ce token, tel que défini dans JWT [RFC7519]. |
ti |
String |
OPTIONNEL. Identificateur de chaîne pour le token, tel que défini dans JWT [RFC7519]. |
Les services sont consommés via un point d'accès commun. Selon la configuration envoyée, c'est le service qui sera exécuté.
HTTP Method:
POST
Root:
/Services
Headers:
Header |
Valeur |
Description |
Authorization |
Bearer $JWT |
Obligatoire. Authentication Token. |
Content-type |
Application/json |
Obligatoire. UUID |
Body:
Field |
Type |
Description |
provider_id |
Int64 |
Obligatoire. Service Provider Id. |
service_token |
String |
Obligatoire. UUID |
service_id |
int |
Obligatoire. Id de service à consommer |
parameters |
Parameters |
{ “destination”: $USER_ID, “notification”:{ “titulo”:”Clínica Dr. Nano. Turno” “mensaje”:”Oftalmologo Lunes 29-10 a las 9:15Hs.” “canal”: SMS }, “advertisement”: { “titulo”:”Autos usados CHECHO” “mensaje”:”Lleve su auto usado con Financiameiento ...” “canal”: FCM } } |
Paramètres
Contient les paramètres nécessaires pour consommer le service spécifié.
Champ |
Type |
Description |
destination |
String |
Conditionnel. Seulement si le service l'exige. User_id de la destination. |
notification |
Notifications |
Conditionnel. Seulement si le service l'exige. User_id de la destination.. { “Titre”:”Clinique Dr. Nano. Turno” “Message”:”Ophtalmologiste Lundi 29-10 a las 9:15Hs.” “Canal”: SMS } |
advertisement |
Advertisements |
Conditionnel. Seulement si le service l'exige. User_id de la destination.. { “Titre”:”Voitures d'occasion CHECHO” “Message”:”Portez votre voiture d'occasion avec le financement...” “Canal”: FCM } |
qr_code |
QRcodes |
Conditionnel. Seulement si le service l'exige. User_id de la destination..
|
microPayment |
MicroPayments |
Conditionnel. Seulement si le service l'exige. User_id de la destination.. |
… |
... |
Conditionnel. Only if the service needs it. User_id of the destination. ... |
Notifications
C'est le corps de la notification qui doit être généré.
Champ |
Type |
Description |
Tittle |
String |
Obligatoire. Le titre de la notification ne dépasse pas 32 caractères |
Message |
String |
Obligatoire. Contenu de la Notification. Pas plus de 166 caractères |
Cannel |
int |
Obligatoire. Notification Shipping Code. Ej: SAT, SMS, FCM, etc. |
Link |
String |
Optionnel. Selon le canal, il peut être disponible ou non. |
Publicités
C'est le corps de la publicité qui doit être généré.
Champ |
Tipo |
Description |
Tittle |
String |
Obligatoire. Titre de publicité ne dépassant pas 32 caractères |
Message |
String |
Obligatoire. Contenu de la publicité. Pas plus de 166 caractères |
Cannel |
int |
Obligatoire. Notification Shipping Code Ej: SAT, SMS, FCB, etc. |
Link |
String |
Optionnel. Selon le canal, ce lien peut faire partie du message. |
Picture |
Base64 |
Optionnel. Selon le canal, il peut être disponible ou non. |
QRcodes
Tickets et cupones...
Micropaiements
No sé a qué se refiere esto...
Code |
Status |
Description |
200 |
OK |
Code d'état général à succès. C'est le code le plus courant. Il sert à indiquer le succès de l'opération. |
201 |
CREATED |
Création réussie (peut être utilisé pour POST ou PUT). Vous devriez avoir renvoyé un lien vers le registre nouvellement créé (par POST). Une réponse peut être présente dans le corps ou non. |
204 |
NO CONTENT |
Indique le succès de l'opération mais ne renvoie rien dans le corps de la réponse, il est généralement utilisé pour les opérations DELETE et PUT. |
400 |
BAD REQUEST |
Erreur générale lors de la génération d'un état invalide traitant la requête. Par exemple, des erreurs dans les validations de domaine, le manque d'informations obligatoires, etc.. |
401 |
UNAUTHORIZED |
Erreur générée lorsque le token d'authentification n'a pas été trouvé ou invalide. |
403 |
FORBIDDEN |
Erreur générée lorsque l'utilisateur n'a pas les autorisations pour exécuter l'opération ou que la ressource n'est pas disponible pour une raison quelconque (par exemple, restrictions de temps, etc.). |
404 |
NOT FOUND |
Il est utilisé lorsque la ressource demandée n'existe pas ou n'est pas accessible. Pour des raisons de sécurité, 401 et 403 erreurs peuvent être masquées avec cette erreur. |
405 |
METHOD NOT ALLOWED |
Utilisé pour indiquer que l'URL demandée existe, mais la méthode HTTP demandée n'est pas applicable. Par exemple, POST/users/12345 où l'API ne prend pas en charge la création de ressources de cette façon (avec une ID fournie). L'en-tête Autoriser HTTP doit être défini lors du renvoi d'un 405 pour indiquer les méthodes HTTP supportées. Dans le cas précédent, l'en-tête ressemblerait à "Autoriser: GET, PUT, DELETE" |
409 |
CONFLICT |
Chaque fois qu'un conflit de ressources serait causé par l'exécution de la demande. Les entrées en double, telles que l'essai de créer deux clients avec la même information, et la suppression d'objets racine lorsque la cascade-delete n'est pas prise en charge sont quelques exemples. |
500 |
INTERNAL SERVER ERROR |
Ne renoncez jamais intentionnellement. L'erreur générale de prise en charge lorsque le côté serveur lance une exception. Utilisez-le uniquement pour des erreurs que le consommateur ne peut pas résoudre à partir de sa fin.. |