使用Firebase和Identity

时间:2017-07-28 04:04:18

标签: c# firebase asp.net-core firebase-authentication asp.net-core-webapi

我有一个使用Firebase jwt令牌身份验证的API。

Startup.cs我已注册Identity

        services.AddIdentity<ApplicationUser, IdentityRole>(config => {

            config.User.RequireUniqueEmail = true;

            config.Password.RequireNonAlphanumeric = false;

            config.Cookies.ApplicationCookie.AutomaticChallenge = false;

        })
        .AddEntityFrameworkStores<DatabaseContext>()
        .AddDefaultTokenProviders();

并添加了Jwt Token中间件:

        app.UseJwtBearerAuthentication(new JwtBearerOptions
        {
            AutomaticAuthenticate = true,
            IncludeErrorDetails = true,
            Authority = "https://securetoken.google.com/[my-project-id]",
            TokenValidationParameters = new TokenValidationParameters
            {
                ValidateIssuer = true,
                ValidIssuer = "https://securetoken.google.com/[my-project-id]",
                ValidateAudience = true,
                ValidAudience = "[my-project-id]",
                ValidateLifetime = true,
            },
        });

我正在用[Authorize]保护我的路线以及它正常工作的一切。 HttpContext.User.Identity.Authenticated属性设置为true,但User对象上的所有其他内容都为null,名称,电子邮件等。

有没有办法将令牌中间件生成的用户链接到我的数据库中的用户?从我的控制器访问这些信息的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

我曾经遇到过类似的问题,并且能够从“ HttpContext.User.Claims”获取用户电子邮件。

确保您根据Json字符串生成POCO类。

------------------控制器代码---------------------

df <- tibble( Infection_Risk = rnorm(100, 4.5, 2))

outliers <- tibble(x = c(7.7, 7.6, 7.8, 1.3, 1.3, 1.4), y = 0)

ggplot(df,aes(x=df$Infection_Risk)) + geom_density() + xlab("\n Infection 
  Risk") + ylab("Density \n") +
  geom_jitter(data = outliers, aes(x,y), height = 0.01)

------------------模型类---------------------

let names = ['pete', 'dave', 'sara', 'toni', 'michael'];

const convertedNames= names.slice();

console.log(names);
console.log(convertedNames);