问题标签 [openiddict]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
488 浏览

asp.net-core - OpenIDDict 注册用户电子邮件确认

我正在使用带有 OpenIDDict 的 ASP.NET MVC Core。我正在为 OpenIDDict 使用带有 cookie 身份验证和 JWT 的视图。除了以下场景外,一切都完美无缺:

身份更改为首先向用户发送确认电子邮件以确认他们的电子邮件地址。用户通过电子邮件获取链接并单击它。然后他们登录。简单的。与此同时,他们无法访问任何页面。

但我注意到,使用邮递员,他们可以通过 OpenIDDict 通过 APi 访问解决方案。他们仍然获得授权。当他们获得授权后,他们就可以访问 API。

刚刚写完这篇文章,我已经放弃了大脑,我可以在交换操作期间简单地将代码引入 AuthenticationController:

工作!你去...回答了我自己的问题。Mya 将来会帮助别人

0 投票
0 回答
485 浏览

facebook - 来自 Facebook 的 OpenIDDict 外部身份验证

我已经成功地让 OpenIDDict 混合使用 cookie 身份验证和网站视图以及 API 的 Jwt 令牌身份验证。调整后的解决方案以允许社交媒体 Facebook 外部登录。这适用于 Cookie 和视图。但无法让 openIdDicyt 用于外部登录/身份验证。我不确定获得 Facebook 身份验证令牌后该怎么做?我假设这是以通常的方式发布到 /connect/token 但不确定设置应该是什么?

我试过了:

但这不起作用。

理想情况下,如果有人有一个从 Facebook 获取令牌的邮递员屏幕转储以及另一个什么肠炎以及邮递员通过 /connect/token 使用此令牌到 OpenIDDict 的位置

0 投票
1 回答
1689 浏览

asp.net-core - 尝试激活时无法解析 OpenIddict.Core.OpenIddictApplicationManager[OpenIddict.Models.OpenIddictApplication] 类型的服务

我正在尝试基于RefreshFlow 示例构建登录。我有 Angular2 应用程序。当我尝试登录时,出现以下错误:

我正在使用Javascript 服务模板。我的请求在 Github 上的附件中

我的配置是:

我有自定义身份类和商店:

控制器:

我真的希望有人能指出我正确的方向。生无可恋。谢谢你。

0 投票
3 回答
2738 浏览

asp.net-core - SqlException:无效的对象名称“OpenIddictTokens”

当我尝试登录时出现错误:处理请求时发生未处理的异常。

SqlException:对象名称“OpenIddictTokens”无效。System.Data.SqlClient.SqlCommand+<>c.b__107_0(任务结果)

DbUpdateException:更新条目时发生错误。有关详细信息,请参阅内部异常。Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch+d__32.MoveNext()

为了确认,这是输出窗口的输出:

插入[OpenIddictTokens]([ApplicationId],[AuthorizationId],[Subject],[Type])值(@p0,@p1,@p2,@p3);选择 [Id] 从 [OpenIddictTokens] WHERE @@ROWCOUNT = 1 AND [Id] = scope_identity(); 抛出异常:Microsoft.EntityFrameworkCore.Relational.dll 中的“System.Data.SqlClient.SqlException”

我注意到数据库中没有一个 OpenIddict 表。有很多使用 OpenIddictDbContext 的示例,但是我使用了一种新方法,但有些东西不起作用。

我的启动文件是:

}

和我的 DbContext:

我覆盖了我所有的身份类(IdentityRole、IdentityRoleClaim、IdentityUser ...)以<int>用作 TKey。

我不知道为什么没有创建 OpenIdDict 表。我已经删除了我的数据库,创建新的并运行

,但只创建身份表。

0 投票
1 回答
171 浏览

asp.net-core - 检索生成访问令牌的时间?

我正在尝试获取包含令牌创建日期的声明...我尝试了以下方法:

0 投票
1 回答
1207 浏览

asp.net-core - OpenIddict 与 Angular2-jwt

我正在使用 ASP.NET Core 构建授权/身份验证 Angular2 应用程序。
当我使用 Authorize 属性调用方法时,在 Visual Studio 输出窗口中出现错误:

在此之前,我登录自己并在 Angular2 应用程序中获取以下对象:

和我的启动文件:

}

网络选项卡中的开发者控制台标题:

我错过了什么?

更新:

正如我在评论中所说,请务必将 access_token 保存到 id_token 本地存储:

因为Angular2-jwt默认使用 id_token 作为访问令牌。

0 投票
1 回答
742 浏览

asp.net-core - Web Api Core 中的社交身份验证

ASP.NET Core集成了对Google, Facebook and Twitter身份验证的支持。这篇msdn 文章很好地涵盖了它。

但它似乎只适用于MVCWeb Api你必须自己实现很多东西。感谢Openiddict我为我的项目做到了这一点,但我仍然觉得我必须编写应该成为框架一部分的低级代码。

app.UseGoogleAuthentication像in这样的简单调用会很好Web Api。所以我的问题是为什么目前不支持它们(是否存在任何架构问题)并且是否有计划最终支持它?

0 投票
1 回答
1612 浏览

asp.net-core - 撤销用户的所有刷新令牌

我正在使用带有 asp.net 身份的密码授予流程。

每次执行登录时,我都想杀死用户的所有刷新令牌。即使他使用其他设备(如其他电脑或智能手机)登录,我也需要它来终止其“会话”。

那么,我该怎么做呢?

我可以只做一个UserManager.UpdateSecurityStampAsync(user.Id);,还是我需要别的东西?

非常感谢你的帮助!

0 投票
1 回答
949 浏览

asp.net-core - 使用 openiddict 时访问身份验证票证信息

当身份验证服务器与资源服务器分开时,有什么方法可以访问身份验证服务器上设置的身份验证票信息?

在身份验证服务器上,我可以访问我使用设置的所有票证属性

但是,当我在资源服务器上尝试此操作时,我无法看到相同的属性。

0 投票
1 回答
1156 浏览

asp.net-core - .NET CORE API 使 Facebook 登录与 Openiddict/Identity 一起使用

我有一个项目(项目 A),它是一个 .NET CORE API 项目,它使用 Openiddict 和 /connect/token 端点来使用 Identity 发布 JWT 令牌来处理安全性等。这个项目按原样工作得很好。

我有另一个项目(项目 B),它只是一个非常简单的项目,其中包含一些 HTML,它向 API 发出请求以获取访问令牌,并从 API 获取数据。这个项目也很好用。

现在我无法绕开我的大脑,我如何在这两个完全独立的项目之间使用 Facebook 登录?如果一切都在一个屋檐下,我知道如何使用它,这真的很容易,但是这种情况让我完全困惑,因为一切都是分开的。那么对于初学者来说,谁处理“ExternalLogin”、“ExternalLoginCallBack”逻辑(来自使用个人帐户的 .NET Web 模板)、API?HTML 项目?与 Facebook 连接时,我应该使用什么重定向 uri(API/HTML 项目)?那么谁应该在他们的“Startup.cs”文件中包含以下代码?

最后,如果这有帮助,那么我目前如何设置项目 A:

启动.CS (API)

公共无效配置服务功能:(API)

公共无效配置功能:(API)

授权控制器 (API)

我不知道它是否包含项目 B 中的任何内容,因为它非常基本/裸露,并且一切都依赖于 API。

我知道这是一个复杂而复杂的问题,而且我确信我没有尽可能流畅地提出它,所以我提前为此道歉,就像我之前说的那样,我很困惑。谢谢!