У меня была большая удача с DotNetOpenAuth, чтобы сделать 3 авторизации на ножках. В настоящее время я соединяю и вытягиваю в некоторых данных Google.
Мой вопрос состоит в том, что, по-видимому, если у Вас уже есть auth'd мое веб-приложение в Вашу учетную запись Google, когда я звоню
var accessTokenResponse = google.ProcessUserAuthorization();
Это в основном ничего не делает. Как я получаю маркер для учетной записи, которая уже имеет auth'd мое приложение? Я не вижу обратного вызова никакого вида.
Я подпираю это до своего незнания о OAuth в целом.
Вы должны заменить пример InMemoryTokenManager
, включенный в DotNetOpenAuth, на собственную реализацию IConsumerTokenManager
, которая хранит токены доступа и секреты в вашей базе данных. Затем вы передаете свой экземпляр этого интерфейса классу WebConsumer
, и он будет получать все входящие токены и секреты.
Либо при вызове ProcessUserAuthorization
, либо внутри вашего класса менеджера токенов, вы также должны связать сохраненные вами токены доступа с учетной записью пользователя, который в данный момент вошел на ваш веб-сайт.
Затем, когда пользователь в следующий раз посетит ваш сайт, вы найдете его учетную запись пользователя в своей базе данных, чтобы получить его маркер доступа. И вы используете его для будущих запросов. Ваш IConsumerTokenManager
предоставит связанный с ним секрет маркера по мере необходимости, и жизнь будет хороша.