Почему Live connect всегда запрашивает согласие?
Я хочу авторизовать своих пользователей с помощью Windows Live. Я использую Windows Live Connect 5.0 SDK для этого. Я использую элемент управления WPF WebBroser для получения токена, но он всегда запрашивает согласие.
Я позволил веб-браузеру перейти по следующей ссылке:
с идентификатором клиента в качестве идентификатора моего приложения. И я наблюдаю за переходом на URL перенаправления. Мне в основном не нужно входить в систему. Но каждый раз мне нужно дать согласие на две сферы.
Странно то, что, когда я смотрю на приложение, я дал согласие, обе области проверяются.
Также, когда я использую другой URL для тихого входа в систему:
Я получаю сообщение об ошибке, что пользователь не дал согласие на wl.signin и wl.basic.
1 ответ
В отличие от реализации OAuth в Facebook, проверка флажка не запоминает согласие на сервере WL, а скорее дает вам токен обновления, который можно обменять на токен доступа.
Поток:
- если токен обновления сохранен - попробуйте получить токен доступа на основе обновления ( http://msdn.microsoft.com/en-us/library/ff752395.aspx), в противном случае:
- показать диалог согласия
- получить доступ и обновить токены ( http://msdn.microsoft.com/en-us/library/ff750952.aspx)
- Безопасное сохранение токена обновления на вашем сервере - токен обновления почти эквивалентен зашифрованному имени пользователя и паролю. Если вы не можете хранить безопасно, вы должны жить с согласием.