web-dev-qa-db-fra.com

Comment utiliser OAuth 2 - OAuth 2 exemple C #

Je dois comprendre comment utiliser OAuth 2 pour utiliser l'API Deviantart.

J'ai la partie client_id et client_secret

Ici les informations qu'ils donnent

Points de terminaison

Les seules informations dont vous avez besoin pour vous authentifier avec nous en utilisant OAuth 2.0 sont les client_id et client_secret valeurs pour votre application, ainsi que le point de terminaison indiqué ci-dessous.

OAuth 2.0 draft 10:

https://www.deviantart.com/oauth2/draft10/authorizehttps://www.deviantart.com/oauth2/draft10/token

Version 15 d'OAuth 2.0:

https://www.deviantart.com/oauth2/draft15/authorizehttps://www.deviantart.com/oauth2/draft15/token

Appel placebo

Le premier appel d'API s'appuyant sur l'authentification OAuth 2.0 est l'appel placebo. Il est utile pour vérifier qu'un jeton d'accès est toujours valide avant de faire un véritable appel d'API qui pourrait être long, comme un téléchargement de fichier. Vous l'appelez avec l'un des points de terminaison suivants (un jeton d'accès doit être fourni):

https://www.deviantart.com/api/draft10/placebohttps://www.deviantart.com/api/draft15/placebo

Vous devez utiliser le point de terminaison qui correspond au brouillon OAuth 2.0 avec lequel vous avez obtenu votre jeton.

Il renvoie toujours le JSON suivant: {status: "success"}

J'ai cherché sur le Web et j'ai trouvé cette bibliothèque géniale.

DotNetOpenAuth v4.0.1

http://www.dotnetopenauth.net/

Ajouté comme référence mais je n'ai aucune idée de quoi faire ensuite. Même un très petit exemple serait vraiment utile sur la façon d'utiliser OAuth 2

using DotNetOpenAuth;
using DotNetOpenAuth.OAuth2;

Voici la page où deviantart donne les informations

http://www.deviantart.com/developers/oauth2

Ok ici ce que j'ai obtenu jusqu'à présent mais ne fonctionne pas

public static WebServerClient CreateClient() {
    var desc = GetAuthServerDescription();
    var client = new WebServerClient(desc, clientIdentifier: "myid");
    client.ClientCredentialApplicator = ClientCredentialApplicator.PostParameter("mysecret");
    return client;
}

public static AuthorizationServerDescription GetAuthServerDescription() {
    var authServerDescription = new AuthorizationServerDescription();
    authServerDescription.AuthorizationEndpoint = new Uri(@"https://www.deviantart.com/oauth2/draft15/authorize");
    authServerDescription.TokenEndpoint = new Uri(@"https://www.deviantart.com/oauth2/draft15/token");
    authServerDescription.ProtocolVersion = ProtocolVersion.V20;
    return authServerDescription;
}
13
MonsterMMORPG

La chose la plus simple à faire maintenant est d'obtenir Visual Studio 2013 et de créer une nouvelle application Web ASP.NET en choisissant "Comptes d'utilisateurs individuels" comme type d'authentification. Il y a une implémentation fonctionnelle OAuth 2 prête à l'emploi) (configurée dans App_Start\Startup.Auth.cs) que vous pouvez découper puis adapter à vos besoins.

10
Iain Galloway

Dans le projet de sécurité ASP.NET Core, il existe maintenant une solution prête à l'emploi:

Package Nuget: AspNet.Security.OAuth.DeviantArt

0
Tolbxela