Как использовать OAuth 2 - OAuth 2 C# пример

Я должен выяснить, как использовать OAuth 2 для использования DeviantArt api.

я получил часть client_id и client_secret

вот информация, которую они дают

конечные точки

единственная информация, которая вам нужна для аутентификации с нами с помощью OAuth 2.0, это client_id и client_secret значения для вашего приложения, а также конечная точка, показанная ниже.

проект OAuth 2.0 10:

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

проект OAuth 2.0 15:

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

плацебо называют

первый вызов API, основанный на аутентификации OAuth 2.0, - это вызов плацебо. Это полезно для проверки что маркер доступа все еще действителен, прежде чем сделать реальный вызов API, который может быть длинным, как загрузка файла. Вы вызываете его с одной из следующих конечных точек (маркер доступа должен быть предоставлен):

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

вам нужно использовать конечную точку, соответствующую черновику OAuth 2.0, с которым вы получили свой токен.

Он всегда возвращает следующий JSON: {status: "success"}

Я искал в интернете и нашел эту удивительную библиотеку.

DotNetOpenAuth v4.0.1

http://www.dotnetopenauth.net/

добавил его в качестве ссылки, но не знаю, что делать дальше. Даже очень маленький пример был бы действительно полезен о том, как использовать OAuth 2

using DotNetOpenAuth;
using DotNetOpenAuth.OAuth2;

здесь страница, где deviantart дает информацию

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

OK, вот что я получил до сих пор, но не работает

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;
}

1 ответов


теперь проще всего получить Visual Studio 2013 и создать новый ASP.NET веб-приложение, выбирающее "индивидуальные учетные записи пользователей" в качестве типа аутентификации. Там есть рабочая реализация OAuth 2 из коробки (настроенная в App_Start\Startup.Автор.cs), который вы можете вырезать, а затем адаптироваться к вашим потребностям.