C# 如何使用Net Core API与来自Auth0的外部用户存储用户信息

C# 如何使用Net Core API与来自Auth0的外部用户存储用户信息,c#,.net-core,asp.net-core-webapi,auth0,C#,.net Core,Asp.net Core Webapi,Auth0,我正在构建一个API,它将使用Auth0进行身份验证,并将拥有web和移动客户端 两个客户端都将使用基于web的登录从Auth0获取令牌 我正在寻找在我的API数据库中获取和存储一些用户信息的最佳方法,这样我就可以在某个组中列出用户,将文章与作者联系起来,向无法存储在Auth0中的用户授予一些权限(有两个原因:没有mtm令牌,更重要的是,它是一种多租户应用程序,将它们保存在令牌中的权限非常复杂) 令牌中有可以使用的userId,但例如何时触发用户保存/更新?在每个请求上运行它听起来效率不高 有人

我正在构建一个API,它将使用Auth0进行身份验证,并将拥有web和移动客户端

两个客户端都将使用基于web的登录从Auth0获取令牌

我正在寻找在我的API数据库中获取和存储一些用户信息的最佳方法,这样我就可以在某个组中列出用户,将文章与作者联系起来,向无法存储在Auth0中的用户授予一些权限(有两个原因:没有mtm令牌,更重要的是,它是一种多租户应用程序,将它们保存在令牌中的权限非常复杂)

令牌中有可以使用的userId,但例如何时触发用户保存/更新?在每个请求上运行它听起来效率不高

有人做过这样的事吗


如何以最好的方式处理它?

我已经找到了一个解决方案,但是如果这里有人推荐一个更好的方法,请推荐!多亏了我的评论,我进入了钩子,然后决定了方向,所以我感谢大家的参与

我认为这是一个相当简单的案例,在本地开发过程中有点棘手,但可以在API中使用一些开发中间件

我将使用Auth0规则和疯狂的简单规则:

函数(用户、上下文、回调){
const axios=require('axios');
轴心柱https://my-web-api.com/auth0/notify“,{user}{
标题:{
“x-api-key”:configuration.api\u key
}})
.然后(()=>回调(null,user,context));
}
在规则中,我添加了
API_KEY
作为变量,因此它不在代码中,加密的,安全的

通过使用它,我将当前用户配置文件从Auth0发送到后端,在那里我只需检查用户是否存在,并在必要时更新配置文件

根据:

请注意,规则也会在令牌刷新流期间运行


在刷新过程中,它也会给我更新,因此如果有任何更改,我也会得到更新。

我不确定我是否完全理解您试图实现的目标,但您可以订阅Auth0上的注册后挂钩,然后在数据库中创建用户。我想您不会使用Auth0进行授权,而只使用auth诱惑?确实如此。我的授权对于Auth0来说太复杂了,所以在数据库中使用特定于域的元数据存储用户就足够了?很抱歉,我不明白问题出在哪里..您正在寻找“用户帐户设置”:登录时,您可以使用提供程序的UPN在本地数据库中查找标识。您可以保留外部令牌或向客户端释放新的“本地”令牌。如果用户帐户不存在:创建一个,如果存在,则更新它。调用
AddOpenIdConnect
时,通过回调传递选项,以确定您可以在何处进行设置nd可选地转换AuthenticationTicket。当用户仅使用令牌调用API时是否调用它?因为API在登录过程中不以任何方式参与。