首页 > 解决方案 > 如何在 ServiceStack 中实现 Auth0 认证?

问题描述

我的设置由 3 个组件组成:

Auth0,我在其中添加用户并管理他们的权限。
我的前端 SPA 网页,用作我的 API 的外壳。
我的 API,使用 ServiceStack 制作。

这是身份验证流程,正如我想象的那样:

用户在客户端应用程序中单击“使用 Auth0 登录”。
然后用户被重定向到 Auth0,他在此处登录并接收 JWT。
此 JWT 存储在客户端上,并添加到我的 API 的每个请求中。
我的 API (ServiceStack) 通过检查它是否与 Auth0 给我的证书匹配来验证 JWT。
我的 API (ServiceStack) 检查用户是否具有所需的权限,由 Auth0 管理并包含在 JWT 中。

理想情况下,这应该像向服务添加 [Authorize] 和 [RequiredPermission] 标记以配置访问哪些服务所需的权限一样简单。

我尝试以许多不同的方式实现这一点,但我开始认为我的整个方法存在缺陷,因此很难添加任何代码片段来说明问题。我是从根本上误解了某些东西,还是应该可以在 ServiceStack 中设置这些东西?我可以使用http://jwt.io/从 Auth0 获取并验证 JWT 是否正确,问题只是将此验证集成到 ServiceStack 中。

标签: .net-corejwtservicestackservicestack-auth

解决方案


Auto0 发布了许多关于与 ServiceStack 集成的文档和文章:

对于 JWT 集成,我在以下位置找到了一个自定义 OAuth0 提供程序:

或者在与 Auth0 OAuth Provider 集成时查看此答案


推荐阅读