为了账号安全,请及时绑定邮箱和手机立即绑定

ServiceStack:显示身份验证和身份验证路径

ServiceStack:显示身份验证和身份验证路径

C#
侃侃尔雅 2021-08-22 17:43:32
我一直在考虑使用 ServiceStack 来创建一个轻量级的 rest api,并注意到当我查看 swagger-ui 时,我注意到有一个 auth 端点和一个身份验证,它们似乎都在做同样的事情。我的配置。代码是:    public override void Configure(Container container)    {        //Set Json as default content type        SetConfig(new HostConfig        {            DefaultContentType = MimeTypes.Json        });        //Create connection to sql server DB        var sqlDb = new OrmLiteConnectionFactory("*connection string*", SqlServer2016Dialect.Provider)        {            ConnectionFilter = x => new ProfiledDbConnection(x, Profiler.Current)        };        container.Register<IDbConnectionFactory>(sqlDb);        //Auth Feature setup        Plugins.Add(new AuthFeature(() => new AuthUserSession(),            new IAuthProvider[]            {                new ApiKeyAuthProvider(AppSettings)                {                    KeyTypes = new [] { "secret", "publishable" }                },                new BasicAuthProvider(),                new FacebookAuthProvider(AppSettings),                new CredentialsAuthProvider()            })            {                IncludeRegistrationService = true            }            );        //Registration Plugin        Plugins.Add(new RegistrationFeature());        //Mini Profiler        Plugins.Add(new MiniProfilerFeature());        //Swagger ui        Plugins.Add(new SwaggerFeature());        //Setup memory cache        container.Register<ICacheClient>(new MemoryCacheClient());        //setup user auth repo in Sql Server instance        var userRep = new OrmLiteAuthRepository(sqlDb);        userRep.InitSchema();        container.Register<IUserAuthRepository>(userRep);        //Exclude metadata        typeof(AssignRoles).AddAttributes(new ExcludeAttribute(Feature.Metadata));        typeof(UnAssignRoles).AddAttributes(new ExcludeAttribute(Feature.Metadata));    }有没有办法只显示 /auth 端点并隐藏另一个?我尝试使用:typeof(Authenticate).AddAttributes(new ExcludeAttribute(Feature.Metadata)); 但这隐藏了两条路径。
查看完整描述

1 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

您可以通过仅指定要注册的 Auth 服务路由来从 AuthFeature 中删除其他路由:


Plugins.Add(new AuthFeature(...) {

    ServiceRoutes = {

        [typeof(AuthenticateService)] = new[] {"/auth", "/auth/{provider}"}

    }

});


查看完整回答
反对 回复 2021-08-22
  • 1 回答
  • 0 关注
  • 200 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信