DotNetOpenAuth для ранее авторизованного сайта - PullRequest
1 голос
/ 16 июня 2010

Мне очень повезло с DotNetOpenAuth, чтобы сделать авторизацию на 3-х ножках.В настоящее время я подключаюсь и извлекаю некоторые данные Google.

Мой вопрос заключается в том, что, очевидно, если вы уже авторизовали мое веб-приложение в своей учетной записи Google, когда я звоню

var accessTokenResponse = google.ProcessUserAuthorization();

Это в основном ничего не делает.Как получить токен для учетной записи, в которой уже есть мое приложение?Я не вижу никакого обратного вызова.

Я подавляю это до своего невежества об OAuth в целом.

1 Ответ

2 голосов
/ 18 июня 2010

Вы должны заменить образец InMemoryTokenManager, включенный в DotNetOpenAuth, на собственную реализацию IConsumerTokenManager, которая хранит токены доступа и секреты в вашей базе данных. Затем вы передаете свой экземпляр этого интерфейса классу WebConsumer, и он будет получать все входящие токены и секреты.

Либо при вызове ProcessUserAuthorization, либо в своем классе менеджера токенов вы также должны связать сохраненные токены доступа с учетной записью пользователя, который в данный момент вошел на ваш веб-сайт.

Затем, когда пользователь в следующий раз посещает ваш сайт, вы просматриваете его учетную запись в своей базе данных, чтобы получить его токен доступа. И вы используете его для будущих запросов. Ваш IConsumerTokenManager предоставит соответствующий секретный токен по мере необходимости, и жизнь будет хорошей.

...