我开始使用Azure-Samples/active-directory-b2c-ios-swift-native-msal应用程序来演示Azure B2C租户的功能。我已经完成了刷新令牌功能之外的所有工作。我已添加“offline_access”作用域以确保提供了刷新令牌。Azure B2C刷新令牌功能不适用于iOS Swift示例应用程序
,我得到的第一个错误:
let application = try MSALPublicClientApplication.init(clientId: kClientID, authority: kAuthority)
let thisUser = try self.getUserByPolicy(withUsers: application.users(), forPolicy: kSignupOrSigninPolicy)
application.acquireTokenSilent(forScopes: kScopes, user: thisUser) { (result, error) in
if error == nil {
self.accessToken = (result?.accessToken)!
self.loggingText.text = "Refreshing token silently"
self.loggingText.text = "Refreshed Access token is \(self.accessToken)"
}
于是,我就在MSAL用户从最初的授权存储,并通过它进入AcquireTokenSilent方法。
我得到这个错误:
Failed to find any access token error
let application = try MSALPublicClientApplication.init(clientId: kClientID, authority: kAuthority)
let thisUser = userFromAuth
application.acquireTokenSilent(forScopes: kScopes, user: thisUser) { (result, error) in
if error == nil {
self.accessToken = (result?.accessToken)!
self.loggingText.text = "Refreshing token silently"
self.loggingText.text = "Refreshed Access token is \(self.accessToken)"
}
最后,我尝试添加在注册/签到(初始AUTH调用)到AcquireTokenSilent使用权限/政策和我得到这个错误:
我得到:“没有与在缓存中找到的参数相匹配的令牌。” (不会让我发布第三链接)
let application = try MSALPublicClientApplication.init(clientId: kClientID, authority: kAuthority)
let thisUser = userFromAuth
application.acquireTokenSilent(forScopes: kScopes, user: thisUser, authority: kAuthority) { (result, error) in
if error == nil {
self.accessToken = (result?.accessToken)!
self.loggingText.text = "Refreshing token silently"
self.loggingText.text = "Refreshed Access token is \(self.accessToken)"
}
我已经在Android示例应用程序测试的刷新令牌功能,我能够刷新令牌成功,所以我不认为这个问题是在任何地方我们的B2C。我还读到MSAL库处理刷新不同于Android和Obj-C示例中使用的AppAuth库,因此我不确定是否有某些我丢失的东西。
任何洞察什么是错的将是伟大的!
添加屏幕截图不会让我在问题中发帖:[第三个错误屏幕截图。](http://imgur.com/YgNluPc) –
你能在解答框中发布你的决议吗(这样我们可以确保这个问题已经得到解答,我可以赞成它) – Parakh