问题标签 [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.
asp.net-core - OpenIddict 刷新令牌流问题 ASP.NET Core
我正在尝试将我的刷新令牌生命周期设置为 2 周。我试过通过.. FromSeconds、FromMinutes、FromHours,但它总是将刷新令牌设置为与访问令牌相同的生命周期。我将不胜感激任何帮助。这是我目前在我的 configureServices 中拥有的:
asp.net-core - 如何为使用外部提供商登录的用户生成 AccessToken
我有一个由 asp.net 核心实现的 API。我使用 OpenIddict 为通过电子邮件和密码注册到我的 api 的用户生成访问令牌和刷新令牌。我已将 Google 中间件 (.UseGoogleAuthentication ... ) 添加到我的 API 中,并且我可以使用 Google 成功登录用户。我的客户是 UWP,在向 localhost/Account/ExternalLogin/Google 发送请求后,我使用 WebAuthenticationBroker 重定向到 google。当用户使用 google 登录时,他被重定向到 Account/ExternalLoginConfirmation,这在完成 ExternalLoginConfirmation 之前是微不足道的 已关闭 我没有其他方法可以为该用户获取令牌(因为他没有密码,而且我不知道用户名)。试过这个:
但这失败并引发异常:
an authorization or token response cannot be returned from this controller
现在如何为用户生成这些令牌?
c# - 开迪克特。无法到达授权代码流的接受(拒绝)授权端点
我在服务器端使用 Openiddict 库进行 OAuth2 身份验证。我们使用 Asp.Net Core - 服务器端,Angular 2 - 客户端。处理授权请求后,服务器重定向到以下带有用户确认表单的 URL。请参见下面的示例代码:
重定向后用户可以看到确认表单,然后单击接受(拒绝)按钮。在Openiddict 代码示例中使用了 MvcBinders 和 Razor 视图,但是当我尝试从 Angular 视图创建到服务器的类似 POST 请求时 - OpenIdConnectRequest 为空。
为什么重定向到本地 URL 后 OpenIdConnectRequest 为空?我可以在不使用 MVC 的情况下在 CORS POST 请求中到达 Accept Authorize 端点吗?
启动设置:
接受端点:
c# - JWT OpenIddict 和 ASP.Net Core 500 内部服务器错误
当我使用 Postman 尝试身份验证时,出现错误。我一直跟踪它,它进行了登录并成功,但随后返回票证失败。
DEBUG日志如下:
这是我的 Startup.cs。我认为错误出现在 Startup.cs 中,我坦率地承认我并不完全理解这一切。
我正在针对通过 IdentityContext 访问的 ASP.Net Identity Core SQL DB 进行身份验证。在跟踪期间,来自该数据库的信息很好,所以我确信该部分工作正常。我打算使用 OpenIddict 使用自签名证书颁发 JWT 令牌,并且我想在 Angular4 应用程序中使用此令牌来访问同一服务器上的 API。
非常感谢任何帮助。
c# - 在 asp.net 核心 DataProtection api 中找不到 ProtectKeysWithCertificate 方法
我在添加 ProtectKeysWithCertificate 这一行时出现编译时错误
asp.net-core - 如何解码刷新令牌?在 openiddict
我在尝试
但有错误
System.Security.Cryptography.CryptographicException:未在密钥环中找到
azure - 在 Azure 上的多个应用程序上共享密钥
我们面临的一个问题是,我们想在多个位置安装相同的 ASP.Net Core WebApp 并使用流量管理器路由用户,但如果这样做,我们会遇到问题,因为身份验证令牌存储在一台服务器中,用户可能访问另一个。我读到我们可以使用 Azure BlobStorage 共享密钥,有人可以描述一下吗?
我们使用 openiddict 进行 API 登录,但我认为如果我们可以使用 Azure BlobStorage 进行密钥存储,这不会影响问题。
谢谢
asp.net-core - 如何使用 .net Core API 在 Ionic 3 中实现 Facebook 原生应用登录
我有一个带有 OpenIddict 的 .Net Core Auth API 和一个 .Net Core Api “客户端”。现在我正在构建一个 Ionic 3 本机应用程序,我想实现 Facebook 登录,人们可以通过本机Facebook 应用程序登录。到目前为止,我只找到了使用 Facebook网络登录的示例。
到目前为止,我有:
- 返回 Jwt 令牌的有效 .Net Core Auth API
- 接受这些 JWT 令牌的有效 .Net Core 客户端 API
- 一个工作的 Ionic 3 应用程序,可以使用用户名 + 密码登录,获取令牌并使用它。
- 一个工作的 Ionic 3 应用程序,带有 Facebook 登录,通过本机Facebook 应用程序(通过 Cordova 插件)登录
感觉代码流是正确的方法,但所有示例都重定向到 Facebook 登录网页,因此用户可能仍然需要在他的原生 Facebook 应用程序已经登录时登录 Facebook。
我的问题是:用户在我的 Ionic 应用程序中通过 Facebook 登录后,如何从 OpenIddict Auth Api 获取 JWT 令牌,以便我可以使用我的客户端 API?或者我应该在使用原生 Facebook 应用程序登录时以某种方式更改流程?
更新:在 Ionic 中,我确实得到了 Facebook UserId,它等于 AspNetUserLogins.ProviderKey。登录到您的 API 是否足够安全?
angular - Angular 4 Asp.Net Core Web API Openiddict JWT 授权总是返回 401
我有一个使用 Asp.Net Core 后端的 Angular 4 SPA。我将 OpenIddict 与 JWT 令牌一起使用,身份验证工作正常并返回一个令牌。只要我不使用 [Authorize] 注释和控制器操作,应用程序就可以正常运行。当我这样做时,它总是返回 401。
老实说,我什至不确定授权应该如何工作。我假设当 Bearer 令牌被提供给一个用 [Authorize] 修饰的请求时,中间件会自动处理它。
我确实看到有一个 EnableAuthorizationEndpoint 可用,所以我使用了它,但该方法永远不会被调用。所以我不确定我应该做什么,所以我将在这里展示我所做的事情,也许有人会足够亲切地为我指明正确的方向。
所以这就是我目前正在做的事情。首先,这是我的 Angular 登录代码。
这会产生一个我可以解析并且看起来是正确的令牌。
这是生成的令牌:
我将 angular2-jwt 用于所有 API 调用。配置如下:
浏览器中的检查显示所有 XHR 请求都按预期形成。接下来是启动代码。
最后,这是一个控制器方法,在没有 [Authorize] 的情况下可以正常工作,但否则返回 401。
控制器本身装饰有:
我可能正在做一些非常愚蠢的事情,但我已经阅读了我能找到的所有内容,但我无法让它发挥作用。非常感谢任何帮助。
openiddict - .Net Core 2.0 Web API OpenIddict 授权:重定向到索引而不是返回 json 数据
所以,问题是当我在我的 api 控制器上使用 AuthorizeAttribute 时,它会停止按预期方式工作。
当我调用 getAllUsers 操作时,身份不是以 json 格式返回用户,而是以某种方式重定向到 index.html,然后我在 Angular 客户端应用程序中收到 json 解析器错误,因为 html 不是可以解析的有效 json 数据。
这在升级到 Asp.Net Core 2.0 后开始发生。
我认为也许我必须更改我的 Startup.cs 或 Program.cs 中的某些内容。但我不知道是什么。
对于新的 Core 2.0,我已经按照 OpenIddict 上的 Refresh Token Sample 进行了操作,一切似乎都很好。
所以这是我的代码......
启动.cs
用户控制器.cs
如果我在 GetAllUsers 方法中放置一个断点,它永远不会被击中。不知何故,由于授权,应用程序之前重定向到 index.html。
程序.cs
顺便说一句,身份验证正在工作。我能够获得令牌,但无法授权控制器访问。