ASP.NET Boilerplate Identity Server API访问令牌

时间:2019-02-26 06:55:41

标签: asp.net identityserver4 zero abp

我已经在ASP.Net Boilerplate中成功启用了Identity Server,并使用JS客户端对其进行了调用,如Identity Server文档http://docs.identityserver.io/en/latest/quickstarts/6_javascript_client.html所述。登录并获取访问令牌后,由于得到401,因此无法使用此访问令牌来访问API。

我无法完成Identity Server示例所示的最后一步。因为我的项目在启动时抛出错误,提示Identityserver已注册。我假设没有此步骤,我的令牌将无法正确生成。但是,尚无法确定我应该如何配置ABP以执行相同的操作。

   

services.AddAuthentication("Bearer").AddIdentityServerAuthentication(options =>
 {
     options.Authority = "http://localhost:5000";
     options.RequireHttpsMetadata = false;

    options.ApiName = "api1";
 });

任何帮助表示赞赏:)

我得到的确切错误是 401(未经授权)。如果我将令牌交换为通过/ api / TokenAuth / Authenticate生成的令牌,则调用有效。

通过Identity服务器生成的令牌是 “eyJhbGciOiJSUzI1NiIsImtpZCI6IjNhODAzNTUzNzNlNDVhMzRmNTI3MzJmM2ZjZWNjZTQ4IiwidHlwIjoiSldUIn0.eyJuYmYiOjE1NTExNTgyMjYsImV4cCI6MTU1MTE2MTgyNiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo2MjExNCIsImF1ZCI6Imh0dHA6Ly9sb2NhbGhvc3Q6NjIxMTQvcmVzb3VyY2VzIiwiY2xpZW50X2lkIjoianMiLCJzdWIiOiIxIiwiYXV0aF90aW1lIjoxNTUxMTU3MTcwLCJpZHAiOiJsb2NhbCIsInNjb3BlIjpbIm9wZW5pZCIsInByb2ZpbGUiXSwiYW1yIjpbInB3ZCJdfQ.LBJ5KfiOGjMSWlpsWbXLuGBnd0RHq07IWM7npYGPOBm38ENeZkzLErgwalTFH7acOOa8rHymfTFRBVQgO1sEy-nnxn-iPmjstKABu2Xe1o-qlsrU7K7mxN1FLKJWksWBty983TZ-WLrK9pXEHjN9LGeBFY-Qx_RPFOVu4gattjgNI05-J3a2dsnON_bJfvsXPL2ktUa_od-uqi9AXnWY_kJA-5xh1rjMP6pf740tMQJjhMGAIitQHbWiCfmvvPjX6bzBnMXFJpmiVT_hZsZ76zoQskLRQz8Zn-IfVhU9VM-8U7B6PKUaVFs4-VA2ia9VVwxuSs1gJoC9RwMqKYmX_g”

我的客户正在使用这些属性进行注册。

        var client = new Client
        {
            ClientId = "js",
            ClientName = "JavaScript Client",
            AllowedGrantTypes = GrantTypes.Code,
            RequirePkce = true,
            RequireClientSecret = false,
            RequireConsent = true,
            RedirectUris = { "http://localhost:5003/callback.html" },
            PostLogoutRedirectUris = { "http://localhost:5003/index.html" },
            AllowedCorsOrigins = { "http://localhost:5003" },

            AllowedScopes =
            { 
                IdentityServerConstants.StandardScopes.OpenId,
                IdentityServerConstants.StandardScopes.Profile,
                "Apps"                    
            }
        };

0 个答案:

没有答案