Хорошо, вот мой вопрос.
Я понимаю процесс протокола OAuth, однако у меня есть некоторая путаница вокруг него.
Я пытаюсь воспользоваться DotNetOpenAuth. Здесь я ничего не понимаю.
Предположим, пользователь (новый пользователь) пытается войти на мой сайт с помощью Twitter.
Процесс идет так (не стесняйтесь поправлять меня, если я ошибаюсь):
- Выдается токен запроса (если мои ConsumerKey и ConsumerSecret в порядке).
- Затем выдается авторизационный токен, и пользователь перенаправляется в Twitter.
- Пользователь авторизует мое приложение. И токен доступа выдается.
- Я получаю данные текущего пользователя и сохраняю их в базе данных (вместе с токеном доступа).
Пока все хорошо.
Теперь вот запутанная часть. Пользователь выходит из системы. Затем возвращается и пытается снова авторизоваться в Twitter. Как определить его токен доступа, если я не могу получить его личность до того, как у меня есть токен доступа? У меня есть его в базе данных, однако я не могу определить, кто он, пока он не повторил те же самые шаги снова и снова. Я уверен, что что-то упустил, и я буду признателен, если вы укажете на это. Мне известно о IConsumerTokenManager, я попытался выполнить обратный инжиниринг InMemoryTokenManager и посмотреть, как он работает, но до сих пор не ясно.