OAuth с Microsoft не работает правильно
Я создал одно веб-приложение на основе шаблона веб-приложения Visual Studio 2012 и попытался проверить OAuth, в который добавлено OOB. Я пошел по следующей ссылке, чтобы зарегистрировать свое приложение и получить идентификатор клиента.
https://manage.dev.live.com/Applications/Index
OpenAuth.AuthenticationClients.AddMicrosoft всегда генерирует: недопустимое значение для входного параметра 'redirect_uri'. Значение должно быть абсолютным URL, схема которого http:// или https://.
но если я буду следовать этой статье, я могу войти без проблем. (добавив iframe и т. д.)
2 ответа
Краткий ответ:
1) Обновите файл hosts, добавив строку: "127.0.0.1 mynewApplication.test"
2) На сайте manage.dev.live.com установите для параметра "Домен перенаправления" значение http://mynewApplication.test:[PORT].
3) запустите приложение локально, убедитесь, что в вашем браузере есть http://mynewApplication.test:[PORT]
4) Войти через Microsoft
Это работало нормально для меня.
Длинный ответ:
Похоже, вы должны указать "Redirect Domain" в инструментах управления приложениями Ms для какого-то уникального доменного имени, которое вы должны сохранить в файле hosts, если тестируете свое приложение локально. Они больше не позволяют устанавливать общее доменное имя типа localtest.me.
Если вы посмотрите в fiddler, то увидите, что MVC добавляет ссылочный URL (текущий URL, который вы видите в своем браузере) в запрос oauth. Поэтому, когда вы отправляете кнопку щелчка, перенаправляющую вас в Microsoft oauth, убедитесь, что ваш браузер загрузил текущую страницу с того же доменного имени, которое было зарегистрировано в домене App Redirect.
Шаги:
- Зарегистрируйте свое приложение на: сайте управления приложениями Windows Live, см. Раздел " Регистрация приложения в Windows Live".
- В разделе "Конфигурация API" введите свой корневой домен, например:
www.yourdomain.com
- В разделе "Конфигурация API" введите URL своего приложения. Не забудьте включить: Account / RegisterExternalLogin
www.yourdomain.com/YourApp/Account/RegisterExternalLogin
Отредактируйте AuthConfig.vb, раскомментируйте OpenAuth.AuthenticationClients.AddMicrosoft и скопируйте с сайта управления приложениями Windows Live свои clientId и clientSecret
OpenAuth.AuthenticationClients.AddMicrosoft( clientId:="0000000000000", clientSecret:="x0-0000000000000000")
Опубликуйте свою заявку на www.yourdomain.com/YourApp
PS. Не забудьте обновить вашу connectionString в Web.config (DefaultConnection)