我与Netcore 2.1和Identityserver4一起使用资源所有者密码流
我需要在一个请求中获得生成令牌承载的client_id 存在一种获取client_id的方法吗? 数据库userId,token,client_id中是否存在关系? 问题是我不知道哪个client_id发出请求
答案 0 :(得分:0)
我在网络核心,多个数据库和多个客户端中都有一个API,通过client_id的功能我可以获取数据库的信息
默认情况下,从身份服务器4发出的访问令牌包括client_id声明:
在客户端使用访问令牌将请求发送到您的Web api之后,在Web api端,将身份验证服务添加到DI并将身份验证中间件添加到管道:
1。将IdentityServer4.AccessTokenValidation NuGet软件包添加到您的项目中
2.Update Startup看起来像这样:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvcCore()
.AddAuthorization()
.AddJsonFormatters();
services.AddAuthentication("Bearer")
.AddIdentityServerAuthentication(options =>
{
options.Authority = "http://localhost:5000";
options.RequireHttpsMetadata = false;
options.ApiName = "api1";
});
}
public void Configure(IApplicationBuilder app)
{
app.UseAuthentication();
app.UseMvc();
}