Facebook Войти на Firebase, но аутентификация не работает - PullRequest
0 голосов
/ 25 июня 2018

Я включил аутентификацию Facebook в своем приложении xamarin для Android, и все работает нормально.Я получаю токен из Facebook и, используя метод входа Api Firebase, я могу подключиться к Firebase и получить обратно токен доступа, который как JWT из API Firebase.Но тем не менее, когда я хочу использовать этот токен доступа в моем Web Api Core, который реализует аутентификацию на основе firebase с использованием приведенного ниже кода на основе этой статьи , он всегда возвращает не аутентифицированное.Тот же код работает для аутентификации Google, следуя точно таким же шагам.Работает также для аутентификации по электронной почте и паролю.В чем может быть проблема с Facebook?

Различия, которые я узнал, когда я захожу на https://console.firebase.google.com/u/0/project/myfirebase/authentication/users

, я вижу пользователей Google, пользователей электронной почты, но не пользователей Facebook.что это значит?если я не зарегистрирован, почему я получаю токен JWT от firebase.

Еще один пример - у Google есть дата окончания срока действия, а у токена Facebook - нет.

services
    .AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
    .AddJwtBearer(options =>
    {
        options.Authority = "https://securetoken.google.com/my-firebase-project";
        options.TokenValidationParameters = new TokenValidationParameters
        {
            ValidateIssuer = true,
            ValidIssuer = "https://securetoken.google.com/my-firebase-project",
            ValidateAudience = true,
            ValidAudience = "my-firebase-project",
            ValidateLifetime = true
        };
    });

РЕДАКТИРОВАТЬ: Я проверил с другой учетной записью Facebook, и она действительно работает.Кажется, проблема в том, что учетная запись fb не работает, подключена к учетной записи gmail, которая уже зарегистрирована с помощью входа в Google. Поэтому Firebase не создает другую учетную запись для Facebook, если электронная почта, к которой подключено, уже зарегистрирована с использованием другого метода Oauth2.Но я не понимаю, почему он не позволяет мне авторизоваться, если я могу аутентифицироваться и получать токен JWT из firebase.

1 Ответ

0 голосов
/ 01 октября 2018

До официального выхода Firebase для решения этой проблемы можно обойти несколько учетных записей на один адрес электронной почты в методе входа в разделе Аутентификация

enter image description here

...