我正在使用配置了一个身份提供程序 (LinkedIn) 的 Azure B2C。我有一个 Web API (b2c bearer auth) 和一个 Web App MVC (b2c Open Id)。
我正在尝试创建一个持久登录 - 这意味着用户可以每 90 天从给定的设备+浏览器通过 LinkedIn 登录一次。
我得到的最接近的是当我在 Web 应用程序中添加 IsPersistent = true 代码以启用它时:
更新:更新了基于 Azure B2C GA 的代码。为了达到我在 Preview 中的位置,我仍然使用自定义授权属性,但代码已更新:
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
filterContext.HttpContext.GetOwinContext().Authentication.Challenge(
new AuthenticationProperties()
{
IsPersistent = true
});
base.HandleUnauthorizedRequest(filterContext);
}
但是,这仅在大约 1 小时内有效。也许它遵循访问和 ID 政策?刷新令牌没有限制 - 我不确定为什么“IsPersistent”只有 1 小时。
所以这导致了这些问题:
- 我可以使用 Azure B2C (OpenId Connect) 实现持久会话(60-90 天)吗?
- 如果是这样,关于我缺少什么的任何指示?我需要做一些自定义 cookie 验证吗?带有刷新令牌的东西(我将它们用于 web api,但在 web 应用程序中没有自定义)。
任何想法或输入都会很棒!