我已经在我的xamarin android应用程序中实现了facebook身份验证,一切正常。我从facebook获取令牌,并使用firebase rest api的signin方法,我能够登录firebase并从firebase api接收作为jwt的访问令牌。
但是,当我想在我的web api核心上使用这个访问令牌时,它总是返回not authenticated,这个核心使用下面的代码实现firebase身份验证。
相同的代码在google身份验证中的工作步骤完全相同。它也适用于电子邮件+密码验证。
Facebook有什么问题?
当我转到article
我可以看到谷歌用户,电子邮件用户,但不是Facebook用户。那是什么意思?如果没有注册,为什么要从firebase获得jwt令牌。
另一个是谷歌有一个有效期,但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帐户已经注册使用谷歌登录。因此,如果连接到的电子邮件已使用其他OAuth2方法注册,则FireBase不会为Facebook创建其他帐户。
但我不明白为什么它不允许我授权,如果我可以认证并从firebase获得jwt令牌。

最佳答案

在firebase发布此问题的正式解决方案之前,解决方法是在认证下的登录方法中为每个电子邮件地址启用多个帐户
android - 在Firebase上注册Facebook登录但身份验证不起作用-LMLPHP

10-08 03:12