[英]Auth0Client.LoginAsync() v4.x doesn't return refresh token in a C# WPF app
这是我的代码:
var auth0 = new Auth0Client(
Properties.Settings.Default.auth0Domain,
Properties.Settings.Default.auth0ClientID);
var handle = new WindowInteropHelper(this).Handle;
var windowWrapper = new WindowWrapper(handle);
var user = await auth0.LoginAsync(
owner: windowWrapper,
scope: "openid profile",
withRefreshToken: true);
返回值包含一个空的刷新令牌。 我还尝试将设备参数设置为任意值,但这没有帮助。 我最近从Auth0 v3.x切换到v4.x。 Auth0 v3.x返回了刷新令牌。 在v4.x中有此突破吗? 如果不是,我需要怎么做才能获得刷新令牌?
您使用哪种身份提供者? -我用Microsoft Live和一个Google帐户尝试了这一点,并且效果很好。
登录/验证时,您是否在“用户”结果中填写了其他任何字段(没有提供任何详细信息/令牌)。
您可以这样尝试吗,即在范围内不使用“配置文件”。
var user = await auth0.LoginAsync(
owner: windowWrapper,
scope: "openid offline_access",
withRefreshToken: true,
device: "my-device");
要么
var user = await auth0.LoginAsync(
owner: windowWrapper,
scope: "openid",
withRefreshToken: true,
device: "my-device");
如果您具有withRefreshToken=true
,则在内部将"offline_access"
附加到作用域名称上,这就是上述两种方法都可以withRefreshToken=true
的原因。
您还需要为每个设备分别提供一个“ id”,以便可以为每个设备分配自己的刷新令牌。
当刷新令牌已经发出,它将在显示Dashboard
- >在Users
- >选择用于登录的用户认证身份- >然后在User Details
- >选择Devices
标签...这会显示有多少Number of Refresh Tokens
已发行到您的设备。
如文档中所述,您不应该继续请求refresh_token。...仅在它们过期后才这样做(请参阅我对请求的需求超出了我的要求)-也许您达到了请求刷新令牌的限制。 。它只是返回一个“空”令牌代替...但是仍然让您的身份验证成功而没有错误....可能吗?
这是有关刷新令牌的文档(您可能已经知道了这一点,因为您必须在v3中使用过它)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.