OAuth с Microsoft не работает правильно

Я создал одно веб-приложение на основе шаблона веб-приложения Visual Studio 2012 и попытался проверить OAuth, в который добавлено OOB. Я пошел по следующей ссылке, чтобы зарегистрировать свое приложение и получить идентификатор клиента.

https://manage.dev.live.com/Applications/Index

OpenAuth.AuthenticationClients.AddMicrosoft всегда генерирует: недопустимое значение для входного параметра 'redirect_uri'. Значение должно быть абсолютным URL, схема которого http:// или https://.

но если я буду следовать этой статье, я могу войти без проблем. (добавив iframe и т. д.)

http://weblogs.asp.net/dwahlin/archive/2007/08/17/integrate-windows-live-id-authentication-into-your-website.aspx

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.

Шаги:

  1. Зарегистрируйте свое приложение на: сайте управления приложениями Windows Live, см. Раздел " Регистрация приложения в Windows Live".
  2. В разделе "Конфигурация API" введите свой корневой домен, например:

www.yourdomain.com

  1. В разделе "Конфигурация API" введите URL своего приложения. Не забудьте включить: Account / RegisterExternalLogin

www.yourdomain.com/YourApp/Account/RegisterExternalLogin

  1. Отредактируйте AuthConfig.vb, раскомментируйте OpenAuth.AuthenticationClients.AddMicrosoft и скопируйте с сайта управления приложениями Windows Live свои clientId и clientSecret

    OpenAuth.AuthenticationClients.AddMicrosoft(
        clientId:="0000000000000", 
        clientSecret:="x0-0000000000000000")
    
  2. Опубликуйте свою заявку на www.yourdomain.com/YourApp

PS. Не забудьте обновить вашу connectionString в Web.config (DefaultConnection)

Другие вопросы по тегам