问题标签 [anonymous-users]

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 投票
0 回答
39 浏览

authorization - 即使对于 [AllowAnonymous] 操作,如何强制在 AuthenticatedUsers 上调用 ValidatePrincipal?

我在一个新的 ASP.NET CORE 3.1 项目上使用 cookie 身份验证。

我有一个供来宾和经过身份验证的用户使用的控制器操作。因此,它用AllowAnonymous属性装饰。

如果用户通过了身份验证,则操作的行为会略有不同,因此我使用它httpContext.User.Identity.IsAuthenticated来检查它,如果为真,然后我检索主体的声明以执行数据库更新。

我遇到的问题是,由于操作允许是匿名的,因此OnValidatePrincipal不会调用 cookie 身份验证方案的事件来确保当前声明是最新的。

这意味着即使httpContext.User.Identity.IsAuthenticated标志为真,我也不能依赖它附带的声明,因为在这种情况下它们没有得到验证。

首先,这在我看来是个问题。其次,有谁知道是否有办法解决这个问题?无论动作是否需要授权OnValidatePrincipal,一旦标志为真,有一些方法可以强制调用事件?httpContext.User.Identity.IsAuthenticated

0 投票
1 回答
108 浏览

android - 如何处理匿名用户的过期令牌

我想允许我的应用程序的用户匿名登录(这将使用随机生成的电子邮件和密码为他们创建一个帐户),如果他们想要创建一个永久帐户,他们将能够简单地绑定电子邮件和密码。

我使用令牌、访问和刷新,这意味着常规令牌流对于匿名用户和经过身份验证的用户都是相同的。

匿名用户的问题是,如果用户长时间未登录应用程序(大于刷新令牌),这意味着现在刷新令牌已过期且无效。

我怎么能处理这种情况?我不能像往常一样要求他们重新进行身份验证,因为他们不知道自己是凭据,而且我不能冒险丢失用户的数据。

我唯一能想到的就是尝试使用本地首选项(例如 DataStore/SharedPreferences 与 KeyStore 结合)通过加密安全地保存他们的凭据,当这种情况发生时,我只需重新登录它们。但我不确定这是否足够好。

任何建议都非常感谢!

0 投票
1 回答
69 浏览

firebase - 使用 Firebase 匿名身份验证作为应用程序中的唯一身份验证方法

我有以下基于 Firebase 后端的移动应用场景:

  • 两个或多个移动应用程序实例通过中央服务(可信)相互通信。应用程序通过交换共享密钥进行配对,例如通过扫描二维码或输入配对码。
  • 用户是匿名的,即不需要(或不可能)注册。本质上,它是特定设备上的特定应用程序与同上对应物配对(相对于用户对用户)。
  • 交换的信息是敏感的,但没有内在价值:必须可以相信信息来自给定的设备,并且必须可以相信信息已经到达预期的设备而不是模拟设备。但是,应用程序实例的信息丢失不是关键问题,例如,如果应用程序被删除或设备被破坏(需要重新配对的烦恼,但不是关键问题)。

Firebase Anonymous Auth 似乎非常适合这种情况 - 但文档暗示它只能用作临时解决方案,直到用户创建实际帐户。使用匿名身份验证作为解决方案的唯一身份验证方法有什么缺点吗?我看到的替代方案是使用基于令牌的自定义登录或电子邮件/密码身份验证的某种黑客攻击。