OAuth2
L'API Creads Partners utilise OAuth2 comme unique protocole d'authentification. Vous devez disposer d'un compte Creads Partners et d'identifiants pour votre application. Le compte Creads Partners est un couple email + mot de passe. Les identifiants d'application sont un Client ID et un Client Secret OAuth. Ses identifiants ne doivent jamais être partagés.
Si vous n'avez pas de compte Creads Partners ou pas d'identifiants d'application, veuillez contacter contact@creads-partners.com.
Workflow pour une application serveur
client_credentials grant type
Ce workflow permet d'authentifier une application qui ne nécessite pas d'authentification de plusieurs utilisateurs Partners différents.
Obtenir un access token:
curl -u CLIENT_ID:CLIENT_SECRET "https://api.creads-partners.com/oauth2/token" -d 'grant_type=client_credentials'
remplacer
CLIENT_ID
par votre Client ID remplacerCLIENT_SECRET
par votre Client Secret
Réponse:
{
"access_token": "MWFjYjgxZGRmMTRjMDA0MDUyYmNmODA5ZDRlNzFjYTc1NTZlYzc0ODMwYTc2OTE3NzIzYzY4ZDc0OGE4YWRhYg",
"expires_in": 3600,
"token_type": "bearer",
"scope": "base"
}
Workflow pour une application serveur avec authentification de chaque utilisateur Partners
password grant type
Ce workflow permet d'authentifier des utilisateurs Partners différents. Le serveur doit obtenir un access token et le stocker en l'associant à un utilisateur (en session par exemple). L'access token devra être associé à toutes les requêtes effectuées par l'utilisateur.
curl -u CLIENT_ID:CLIENT_SECRET "https://api.creads-partners.com/oauth2/token?grant_type=password' -d 'grant_type=password&username=USERNAME&password=PASSWORD'
remplacer
CLIENT_ID
par votre Client ID remplacerCLIENT_SECRET
par votre Client Secret remplacerUSERNAME
par l'email de l'utilisateur à authentifier remplacerPASSWORD
par le mot de passe saisie par l'utilisateur à authentifier
Réponse:
{
"access_token": "NWE4MmVmZjgyYjA1NTBkODI5ZDY1ZmFlMGZlZmIyZTE1NDE1MWM2ZmQ0NjEwMjNlYmI0M2MxNDYxOTMyNmFlMQ",
"expires_in": 3600,
"token_type": "bearer",
"scope": "base",
"refresh_token": "ZWNmZWEwNjU0OTY5ZjUxMThjN2VlM2NkMjI5MDk1OWM3MGE1NTI2OTNmMzUwZWU3M2MzZTc0ZmFiMmVhYTk4Nw"
}
Refresh token (refresh_token grant type)
refresh_token grant type
Permet de raffraichir un access token OAuth2 sans redemander le mot de passe de l'utilisateur. A l'obtention d'un access token et son stockage sur le serveur, on peut également stocker un refresh token. Ce refresh token valable pour une plus longue durée permettra d'obtenir un nouvel access token pour un utilisateur Partners sans le forcer à resaisir son mot de passe.
curl -u CLIENT_ID:CLIENT_SECRET "https://api.creads-partners.com/oauth2/token?grant_type=password' -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'
remplacer
CLIENT_ID
par votre Client ID remplacerCLIENT_SECRET
par votre Client Secret remplacerREFRESH_TOKEN
par le refresh token obtenu avec l'access token
Réponse:
{
"access_token": "NWE4MmVmZjgyYjA1NTBkODI5ZDY1ZmFlMGZlZmIyZTE1NDE1MWM2ZmQ0NjEwMjNlYmI0M2MxNDYxOTMyNmFlMQ",
"expires_in": 3600,
"token_type": "bearer",
"scope": "base",
"refresh_token": "ZWNmZWEwNjU0OTY5ZjUxMThjN2VlM2NkMjI5MDk1OWM3MGE1NTI2OTNmMzUwZWU3M2MzZTc0ZmFiMmVhYTk4Nw"
}
Scopes
L'API Partners permet de demander un access_token
pour un scope
particulier lors de l'authentification. Par défaut, cette valeur est définie à base
.
Scopes existants
- base: Permet d'obtenir et modifier des resources et des fichiers (soumis aux règles de sécurité de l'utilisateur)
- files: Ne permet que d'obtenir des images ou des fichiers sur les endpoints prévus à cet effet.
- upload_files: Permet d'uploader des fichiers.
Un token avec le scope
base
ne devrait jamais être exposé à un client. L'obtention de ce token par un tiers constitue une faille de sécurité
Donner accès aux images à des utilisateurs anonymes
Si une application (grant type client_credentials
) a besoin d'afficher une image à ses utilisateurs qui ne sont pas eux mêmes authentifiés sur Partners, les scopes permettent d'exposer un token non critique pour effectuer cet affichage.
Obtenir un access token pour les fichiers:
curl -u CLIENT_ID:CLIENT_SECRET "https://api.creads-partners.com/oauth2/token" -d 'grant_type=client_credentials' -d 'scope=files'
remplacer
CLIENT_ID
par votre Client ID remplacerCLIENT_SECRET
par votre Client Secret Remarquer scope=files
Réponse:
{
"access_token": "MWFjYjgxZGRmMTRjMDA0MDUyYmNmODA5ZDRlNzFjYTc1NTZlYzc0ODMwYTc2OTE3NzIzYzY4ZDc0OGE4YWRhYg",
"expires_in": 3600,
"token_type": "bearer",
"scope": "files"
}
Ce token peut maintenant être joint à l'url d'une image :
<img src="https://api.creads-partners.com/v1/img/whateverImage.png?access_token=ACCESS_TOKEN">
remplacer
ACCESS_TOKEN
par la valeur de ce champ dans la réponse obtenue précédemment