Как перейти на Google OAuth с AuthSub? - PullRequest
1 голос
/ 18 ноября 2010

У меня есть приложение, которое отображает данные Google Analytics. В настоящее время он хранит имя пользователя и пароль, которые мне не нравятся, поэтому я хотел преобразовать его для использования OAuth. Я выделил метод аутентификации для получения токена в надежде, что все, что мне нужно сделать, это изменить этот метод:

public static string getSessionTokenClientLogin(string email, string password)
{
    //Google analytics requires certain variables to be POSTed
    string postData = "Email=" + email + "&Passwd=" + password;

    //defined - should not channge much
    postData = postData + "&accountType=HOSTED_OR_GOOGLE" + "&service=analytics" + "&source=testcomp-testapp-1";

    ASCIIEncoding encoding = new ASCIIEncoding();
    byte[] data = encoding.GetBytes(postData);

    HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("https://www.google.com/accounts/ClientLogin");
    myRequest.Method = "POST";
    myRequest.ContentType = "application/x-www-form-urlencoded";
    myRequest.ContentLength = data.Length;
    Stream newStream = myRequest.GetRequestStream();

    // Send the data.
    newStream.Write(data, 0, data.Length);
    newStream.Close();

    HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
    Stream responseBody = myResponse.GetResponseStream();

    Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
    StreamReader readStream = new StreamReader(responseBody, encode);

    //returned from Google Analytics API
    string response = readStream.ReadToEnd();

    //get the data we need
    string[] auth = response.Split(new string[] { "Auth=" }, StringSplitOptions.None);

    //return it (the authorization token)
    return auth[1];
}

Есть ли простой способ конвертировать это в OAuth? Я могу изменить параметры, но я надеюсь, что мне не нужно вносить архитектурные изменения в остальную часть моего приложения. Спасибо!

1 Ответ

0 голосов
/ 18 ноября 2010

Вы должны быть в состоянии использовать руководство из http://blog.stevienova.com/2008/04/19/oauth-getting-started-with-oauth-in-c-net/ в качестве основы для написания кода для получения токена OAuth.Вы должны использовать https://www.google.com/accounts/OAuthGetRequestToken (как указано здесь ) вместо http://term.ie/oauth/example/request_token.php, очевидно.Я не думаю, что вам нужно будет существенно изменить свою архитектуру, чтобы это работало.Кроме того, вам необходимо авторизовать токен, прежде чем вы сможете его использовать.Я думаю, что чтение http://code.google.com/apis/accounts/docs/OAuth_ref.html должно дать вам большую часть того, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...