【问题标题】:The user credentials are need to obtain access token. Please call the non-silent acquireTokenWithResource methods用户凭证需要获取访问令牌。请调用非静默的 acquireTokenWithResource 方法
【发布时间】:2016-07-09 06:16:28
【问题描述】:

我在我的应用程序中使用 ADALiOS 进行身份验证。当用户登录应用程序时,我收到以下错误:

“参数‘cacheItem.scopes’无效。值:(null)。”

"需要用户凭证获取访问令牌。请调用非静默的acquireTokenWithResource方法"

任何帮助将不胜感激。谢谢

【问题讨论】:

    标签: ios objective-c azure-mobile-services azure-active-directory adal


    【解决方案1】:

    如果禁用钥匙串共享,可能会发生这种情况。 一种可能的解决方案是:

    解决方案:

    第 1 步: Xcode > Target > Capabilities > Keychain Sharing -> 切换到 ON

    第 2 步: 将 com.microsoft.adalcache 添加到 Keychain Group。

    希望这会有所帮助。

    【讨论】:

    • 我启用了钥匙串共享但我无法获取刷新令牌,显示相同的错误,请提供任何建议。
    【解决方案2】:

    处理 iOS 的模式涉及首先在 ADAL 缓存中查找凭据(静默版本) - 如果凭据不存在,则调用弹出 UI 以收集凭据的版本(非静音版)

    您可以在此处的示例应用中看到这一点:https://github.com/AzureAD/azure-activedirectory-library-for-objc/blob/master/Samples/MyTestiOSApp/MyTestiOSApp/BVTestMainViewController.m

    【讨论】:

    • 我遵循相同的模式。当应用程序启动时,它会检查 Get_Token_Silently,如果它从缓存中获取令牌,它将不会显示 UI,如果它没有获得令牌,我将请求令牌以获取非静默方法。每次我打开应用程序时,它都会显示用于登录的 UI 并出现上述错误。
    • 你能用你正在使用的代码更新你的问题吗?
    • 在缓存中添加或更新项目时,它没有更新范围,并且当我从缓存范围中获取项目时丢失了。所以我只是在添加或更新缓存时更新范围,然后我默默地得到了令牌。谢谢
    • @shashank 你能给我更多关于如何在代码中做的信息吗?我也有同样的问题,但无法解决
    猜你喜欢
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-14
    • 1970-01-01
    • 2013-05-22
    相关资源
    最近更新 更多