Почему Live connect всегда запрашивает согласие? - PullRequest
3 голосов
/ 26 октября 2011

Я хочу авторизовать своих пользователей с помощью Windows Live.Я использую Windows Live Connect 5.0 SDK для этого.Я использую элемент управления WPF WebBroser для получения токена, но он всегда запрашивает согласие.

Я позволяю веб-браузеру перейти по следующей ссылке:

https://oauth.live.com/authorize?client_id=CLIENT_ID&response_type=token&scope=wl.signin%20wl.basic&redirect_uri=https://oauth.live.com/desktop

сидентификатор клиента в качестве идентификатора моего приложения.И я наблюдаю за переходом на URL перенаправления.Мне в основном не нужно входить в систему.Но каждый раз, когда мне нужно дать Согласие для двух областей.

Странно то, что, когда я смотрю на приложения, я давал Согласие, обе области проверяются.

Также, когда яиспользуйте другой URL для входа в систему без вывода сообщений:

https://oauth.live.com/authorize?client_id=CLIENT_ID&response_type=token&scope=wl.signin%20wl.basic&redirect_uri=https://oauth.live.com/desktop&display=none

Я получаю ошибку, что пользователь не дал согласия на wl.signin и wl.basic.

1 Ответ

2 голосов
/ 26 октября 2011

В отличие от реализации OAuth в Facebook, проверка флажка не запоминает согласие на сервере WL, а скорее дает вам токен обновления, который можно обменять на токен доступа.1005 * если сохранен токен обновления - попытаться получить токен доступа на основе обновления (http://msdn.microsoft.com/en-us/library/ff752395.aspx), в противном случае:

показать диалоговое окно согласия получить токены доступа и обновить (http://msdn.microsoft.com/en-us/library/ff750952.aspx) Безопасное сохранение токена обновления на вашем сервере - токен обновления почти эквивалентен зашифрованному имени пользователя + паролю.Если вы не можете безопасно хранить, вы должны жить с диалоговым окном согласия.
...