Documentation Steamworks
OAuth
OAuth permet aux sites et applications partenaires sur les plateformes intégrées d'accomplir certaines opérations pour le compte d'utilisatrices ou utilisateurs Steam authentifiés, et ce de manière sécurisée.

Pour utiliser OAuth, vous devez d'abord obtenir un identifiant client de la part de Valve. Consultez le Guide de démarrage pour plus d'informations.

Certaines API utilisant le protocole OAuth nécessitent également une clé d'édition d'API Web pour valider votre identité en tant que partenaire Steam. Ces API ne peuvent être appelées qu'à partir de vos serveurs, car la clé ne peut pas être partagée avec les clients, et elles seront signalées grâce aux clés de paramétrage.

Parmi les services d'API Web ayant activé les méthodes d'authentification OAuth, on trouve : ICloudService, IBroadcastService, IGameNotificationsService, IPlayerService et IPublishedFileService.

En guise d'exemple, on utilisera http://redirect/uri/here pour représenter l'URI de redirection.

Guide de démarrage


L'implémentation sur Steam est basée sur le protocole OAuth 2.0.
Durant la phase initiale de configuration, veuillez contacter Valve et fournir les informations suivantes :
  • les autorisations que l'utilisatrice ou l'utilisateur devra obtenir. Les autorisations requises sont répertoriées ci-dessous avec les appels d'API correspondants. Remarque : si vous ne prévoyez pas de prendre en charge la synchronisation multiplateforme avec le cloud ou le Workshop, nous ne vous fournirons pas d'identifiant client ;
  • la durée de vie d'un jeton ;
  • l'URI de redirection pour renvoyer la personne après authentification et autorisation obtenues.
En retour, Valve lui attribuera un identifiant Client pour votre implémentation.

Pour authentifier la personne, redirigez-la vers :

https://steamcommunity.com/oauth/login?response_type=token&client_id=client_id_here&state=whatever_you_want

Il est conseillé d'ajouter &mobileminimal=1 à la requête ci-dessus pour les navigateurs intégrés, car cela permet de supprimer les éléments superflus de l'interface du site de Steam lorsque la page OAuth s'affiche directement dans votre jeu.

Si vous incluez le paramètre d'état, il sera renvoyé à l'URI de redirection quand la personne aura confirmé ou refusé l'accès. Veuillez noter que le type de code d'autorisation est aussi pris en charge avec l'utilisation de response_type=code pendant la connexion.

Si la personne autorise l'accès, elle sera redirigée vers vous de la manière suivante :

http://redirect/uri/here#access_token=token_here&token_type=steam&state=whatever_you_want

Ce jeton doit être considéré comme une chaine de caractères opaques. Actuellement, les jetons sont des chaines composées de 32 caractères, mais cette caractéristique est susceptible de changer. L'API comprend aussi un paramètre SteamID obsolète qu'il faut ignorer. Veuillez consulter la section Identifier un compte dans Steam ci-dessous pour identifier de manière sécurisée un SteamID.

Si la personne refuse l'accès, elle sera redirigée vers vous avec :

http://redirect/uri/here#error=access_denied&state=whatever_you_want

Cette réponse (y compris le jeton) est fournie par le fragment URI. Ainsi, si vous souhaitez envoyer des requêtes côté serveur, il faudra donc y accéder côté client avant qu'elle ne soit renvoyée vers votre serveur.

Une fois que vous disposez du jeton de l'utilisateur ou utilisatrice, vous pouvez commencer à envoyer des requêtes API comme expliqué ci-dessous.
Contrairement aux autres listées ci-dessous, ces requêtes doivent être des requêtes POST HTTP, présentées sous la forme de données de formulaire et comporter cet entête :

Type de contenu : application/x-www-form-urlencoded

Identifier un compte dans Steam

Quand vous avez obtenu un jeton OAuth pour un compte Steam, vous pouvez effectuer un appel de serveur à serveur pour récupérer de manière sécurisée le SteamID de la personne associée au jeton en appelant :

https://api.steampowered.com/ISteamUserOAuth/GetTokenDetails/v1/?access_token=token

Accéder à Steam Cloud


Pour accéder à Steam Cloud au nom de l'utilisateur ou de l'utilisatrice, votre client OAuth aura besoin des permissions read_cloud et/ou write_cloud.
Ces permissions sont définies par AppID, vous devez donc spécifier tous les AppID à inclure quand vous créez votre identifiant client.

Quand vous avez obtenu le jeton OAuth, utilisez l'API Web de Steam ICloudService.

Accéder au Workshop Steam


Pour accéder à Steam Workshop au nom de l'utilisateur ou de l'utilisatrice, votre client OAuth aura besoin des permissions read_cloud et/ou write_cloud.
Ces permissions sont définies par AppID, vous devez donc spécifier tous les AppID à inclure quand vous créez votre identifiant client.

Quand vous avez obtenu le jeton OAuth, utilisez l'API Web de Steam IPublishedFileService.