Я пытаюсь реализовать аутентификацию Facebook в проекте веб-API, который будет использоваться мобильными клиентами в качестве бэкэнд. Местного входа не будет.Как использовать аутентификацию Facebook в веб-API
Я выполнил шаги, описанные в Microsoft's documentation, чтобы создать проект с использованием шаблона веб-API Visual Studio. У меня уже есть Facebook Id приложение & секрет, я установил OAuth перенаправления URI на панели Facebook, соответственно, и я установил Id & секрет в файле Startup.Auth.cs:
app.UseFacebookAuthentication(
appId: "***",
appSecret: "***");
Затем я создал базу данных LocalDB и установить web.config DefaultConnection строки:
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=webapidb;Integrated Security=True;Pooling=False" providerName="System.Data.SqlClient" />
при запуске проекта, я могу использовать метод Account.GetExternalLogin (/ API/счет/ExternalLogin/поставщик = Facebook?) с GET, чтобы инициировать вход. Я перенаправлен на страницу одобрения Facebook, а затем, когда перенаправляется обратно на GetExternalLogin, я вижу, что параметр «ошибки» имеет значение null. Я также добавил часы на User.Identity.IsAuthenticated, и он оценивает значение true внутри метода.
До сих пор все как ожидается.
Но однажды GetExternalLogin метод завершается, я пытаюсь вызвать любого [Authenticate] -decorated метода (например, /апи/значение/3) и я получаю HTTP401 Несанкционированную ошибку.
Еще одна вещь заключается в том, что когда я открываю таблицу AspNetUsers, нет записей, я ожидал увидеть мой идентификатор Facebook и имя пользователя, сохраненные там.
Не могли бы вы объяснить, как должен использоваться клиентский механизм аутентификации, и что нужно сделать, чтобы иметь идентификатор пользователя и имя, сохраненные в базе данных?
Спасибо!