DotNetOpenAuth OAuth2 для API Basecamp

У меня возникли некоторые трудности с работой OAuth2 для API Basecamp с DotNetOpenAuth, вот что у меня есть до сих пор, это веб-приложение ASP.NET MVC 4.

public ActionResult Basecamp()
{
    var server = new DotNetOpenAuth.OAuth2.AuthorizationServerDescription();
    server.AuthorizationEndpoint = new Uri("https://launchpad.37signals.com/authorization/new");
    server.TokenEndpoint = new Uri("https://launchpad.37signals.com/authorization/token");

    var client = new DotNetOpenAuth.OAuth2.WebServerClient(
        server, "my-basecamp-id", "my-basecamp-secret");

    client.RequestUserAuthorization(returnTo: new Uri("http://localhost:55321/settings/basecampauth"));
    Response.End();

    return null;
}

[HttpPost]
public ActionResult BasecampAuth()
{
    var server = new DotNetOpenAuth.OAuth2.AuthorizationServerDescription();
    server.AuthorizationEndpoint = new Uri("https://launchpad.37signals.com/authorization/new");
    server.TokenEndpoint = new Uri("https://launchpad.37signals.com/authorization/token");


    var client = new DotNetOpenAuth.OAuth2.WebServerClient(
        server, "my-basecamp-id", "my-basecamp-secret");

    var state = client.ProcessUserAuthorization(Request);
    Response.Write(state.AccessToken);
    Response.End();
    return null;
}

Это ошибка, которую я получаю от Basecamp:

--- 
:error: "Unsupported type: nil. We support user_agent and web_server."

Я пытался поискать и осмотреться, и не мог найти много интересного. Любая помощь/указатель будут оценены.

Спасибо


person Dominic St-Pierre    schedule 03.07.2013    source источник
comment
Привет, Доминик: приятель, мне нужна помощь с аутентификацией в базовом лагере. Я пытаюсь войти в систему, используя базовый лагерь, поскольку проект MVC использует Google facebook и т. Д., Как я могу войти в систему, используя свои учетные данные базового лагеря.   -  person Dare Devs    schedule 26.03.2015


Ответы (1)


Измените это:

server.AuthorizationEndpoint = new Uri("https://launchpad.37signals.com/authorization/new");

к этому:

server.AuthorizationEndpoint = new Uri("https://launchpad.37signals.com/authorization/new?type=web_server");

Примечание: я добавил type=web_server в конец uri.

Возьмите из эти официальные документы.

person Pure.Krome    schedule 05.07.2013