小编Chi*_*ief的帖子

AppAuth Kotlin Android 过期令牌和刷新令牌

我认为AppAuth作为一个库缺乏大量关于如何使用库本身的支持文档。有一些方法如performActionWithFreshTokens() 的记录模糊。例如,我如何使用此方法来刷新令牌。我还想知道文档是否足够清晰以供 Kotlin 解释。

让我再次想到这里的是,我如何使用这个库在 android (Kotlin) 上的以下情况下执行刷新令牌。

第一个请求令牌成功。现在假设应用程序被关闭或在后台运行一段时间,当它再次重新启动时,access_token 已过期......

此时,尝试使用此方法 createTokenRefreshRequest() 或 PerformActionWithFreshTokens() 刷新访问令牌和其他令牌需要 chrome 选项卡意图显示并要求用户再次输入用户名和密码(与对第一次)。

这是设计使然吗?有没有办法可以刷新令牌而不需要 chrome 选项卡意图显示?

使用AppAuth和OkHttp的组合是客户端。

在尝试了各种方法来实现这一目标之后,这就是我一直遇到的行为。有点困惑尝试刷新或获取新的访问令牌时是否应显示 chrome 选项卡意图。

android oauth kotlin appauth

8
推荐指数
0
解决办法
1031
查看次数

JwtBearerAuthenticationOptions 不包含 IssuerSecurityTokenProviders 的定义

目前正在关注有关如何实现 OAuth JWT 身份验证的本教程。目前卡在两件事情上,这已经变得有点难以解决。

  1. 下面的代码抛出“定义”和“命名空间”错误。
app.UseJwtBearerAuthentication(
                new JwtBearerAuthenticationOptions
                {
                    AuthenticationMode = AuthenticationMode.Active,
                    AllowedAudiences = new[] { audienceId },
                    IssuerSecurityTokenProviders = new IIssuerSecurityTokenProvider[]
                    {
                        new SymmetricKeyIssuerSecurityTokenProvider(issuer, audienceSecret)
                    }
                });
Run Code Online (Sandbox Code Playgroud)

如下图所示是错误: 在此处输入图片说明

不知道为什么我会收到此错误,因为所有必需的软件包都已安装。在另一个 IssuerSecurityKeyProviders 上存在,如果我选择使用这个或运行带有错误的构建,它将生成令牌但是当我尝试访问 api 上的任何授权端点时,我收到可怕的“消息”:“授权此请求已被拒绝。”

当我调试令牌时,所有似乎都匹配。发行人相同,受众 ID 相同,用户也确实存在于数据库中,但 changepassword 端点总是失败,如下面的屏幕截图所示。

在此处输入图片说明

最后但并非最不重要的一点是寻找一个很好的教程,我可以按照它来帮助我使用 JWT 和 OWIN 启动和运行 Web API 身份验证。大部分已经过时,包已经改变了多年来例如这一个,这是很难发现的答案中遇到的问题。令人沮丧的触摸

oauth jwt asp.net-web-api owin jwt-auth

7
推荐指数
1
解决办法
2886
查看次数

在 Internet Explorer 11 中使用 Angular Elements 的推荐方法

寻找有关如何使用可在其他浏览器上工作的 Angular Elements 的指南,尤其是 Internet Explore 11。

到目前为止,遵循使用 ngDoBootstrap 来定义自定义元素(Angular Element)的推荐约定。它仅适用于 Chrome,但在 IE 中,元素标签在 DOM 中可见,但在浏览器上不显示任何内容。架构如下:组件、服务、管道……都被分成模块。

然后使用 customElements.define() 定义一个父组件。一旦这在 DOM 中应用,诸如单击事件更改检测之类的操作就可以在 chrome(当前版本:72.0.3626.121)中很好地工作,但在 IE 中没有任何显示。我花了几个小时研究不同的方法让它在 IE 中工作。我查看了这里提供的一些问题和答案,特别是使用 polyfills 但没有成功。

然后,我尝试按照 parent > child 的顺序一次定义一个组件,但再次遇到了不同的问题,其中 IE 开始抛出脚本错误,其中一个特别是与 zone.js 和 vendor.js(但不是在 chrome 中)有关。这样做后,我能够看到该元素,但操作和更改检测不起作用。

在这里尝试了这种方法但后来开始遇到依赖注入错误。到目前为止,一个问题会导致另一个问题。

选择使用 AngularElements 的原因是尝试将其与使用不同技术堆栈编写的现有项目集成。

polyfills internet-explorer-11 angular angular-elements

6
推荐指数
2
解决办法
5606
查看次数

Url.Action 返回 null

我正在尝试使用 asp.net core 3 构建电子邮件确认链接。生成令牌后,使用此代码生成确认电子邮件链接始终返回 null。

var token = await _userManager.GenerateEmailConfirmationTokenAsync(user);
            var confirmationLink = Url.Action(
                "ConfirmEmail",
                "Users",
                new { userId = user.Id, token }, protocol: Request.Scheme
                );
Run Code Online (Sandbox Code Playgroud)

这是一个 .net core 3 Web api 项目,没有 mvc。在启动时配置是使用:app.UseRouting()。

上面我可能做错了什么以及为什么它总是返回 null。我需要什么来满足该方法才能返回正确的期望值?

c# razor asp.net-core

0
推荐指数
1
解决办法
2451
查看次数