Zijob - API - Authentication - OAuth
Introduction à OAuth
Nous vous rappelons que l'authentification n'est uniquement nécessaire pour les méthodes permettant d'accéder au compte d'un utilisateur Zijob. Pour les autres méthodes (recherche par exemple), vous n'avez pas besoin d'une authentification.
Nous avons opté pour le protocole OAuth pour assurer l'authentification sur Zijob. Oauth est un protocole d'authentification qui permet à un utilisateur de se connecter à une application externe sans partager son mot de passe. Pour avoir plus d'informations sur ce protocole, vous pouvez visiter le site officiel oauth.net.
L'avantage d'un protocole comme OAuth est que l'authentification est permanente. C'est à dire que si un utilisateur a accepté votre application, il n'aura plus besoin de s'authentifier à moins qu'il décide de révoquer votre application ou bien que nous bloquions l'accès à votre application.
Vous devez enregistrer votre application avant de pouvoir accès à l'authentification OAuth
Enregistrer son application
Afin de pouvoir créer une application, vous devez nous contacter afin que nous enregistrions votre application. Veuillez nous fournir les informations suivantes :
- requester_name : votre nom
- requester_email : votre adresse email
- callback_uri : l'url vers lequel va être renvoyé l'utilisateur (voir ci-dessous)
- application_uri : l'url éventuel de votre application
- application_title : le nom de votre application
- application_descr : une courte description de votre application
Lorsque nous enregistrons votre application, nous vous envoyons deux paramètres qui seront nécessaires pour la configuration de l'application (voir paragraphe suivant) :
- consumer_key
- consumer_secret
Vous devez garder ces paramètres secrets.
Fonctionnement de OAuth
Paramètrage de l'application
Nous avons utilisé un protocole d'authentification populaire (utilisé par exemple par Twitter) afin que vous puissiez utiliser des librairies déjà existantes. Toutes les librairies OAuth fonctionnent de la même manière et vont vous demander les informations suivantes pour le paramètrage :
- consumer_key
- Clé que l'on vous fournit lors de l'enregistrement de votre application
- consumer_secret
- Clé que l'on vous fournit lors de l'enregistrement de votre application
- request_token_url
- http://www.zijob.com/oauth/requestToken
- user_authorisation_url
- http://www.zijob.com/oauth/authorize
- access_token_url
- http://www.zijob.com/oauth/accessToken
- version
- '1.0'
Le paragraphe suivant vous explique comment sont utilisés ces informations par votre application.
Explications
La liste suivante va vous permettre de comprendre le schéma d'authentification. Il est volontairement simplifié, le principe est de comprendre les bases, la librairie que vous utiliserez vous permettra de réaliser chaque étape de manière automatique.
- Un utilisateur Zijob se présente sur votre application, celle-ci va vérifier si l'utilisateur à un token d'authentification
- Dans le cas où l'utilisateur n'a pas de token, votre application demande un token d'application à Zijob grâce à l'url request_token_url
- Vous redirigez alors l'utilisateur vers user_authorization url en fournissant le token d'application obtenu à l'étape précédente
- L'utilisateur va devoir s'identifier sur Zijob avec son identifiant et son mot de passe, il lui sera alors demandé s'il souhaite autoriser votre application
- Si l'utilisateur autorise votre application, nous le redirigeons vers votre celle-ci via callback_uri avec un token d'utilisateur
- Votre application va alors vérifier que le token d'utilisateur est correct en utilisant l'url access_token_url
- Après validation du token, votre application le stocke et donne un accès à l'utilisateur
- Votre application peut alors interroger notre api pour l'utilisateur concerné en fournissant le token de l'utilisateur ainsi que consumer_key et consumer_secret
Ressources
Site Officiel OAuth
Le site officiel OAuth (en anglais) vous permet d'en savoir plus sur OAuth, de consulter les spécifications et vous donne accès à plusieurs ressources
Librairies
Plusieurs librairies existent selon le langage que vous utilisez, nous listerons ici les librairies les plus populaires, n'hésitez pas à nous contacter pour en suggérer une ç
PHP Zend
Il existe différents tutoriels, quelques exemples ici :