如何将 App ID 移动 (iOS) SDK 与 Kitura 网络应用程序连接?

How to connect App ID mobile (iOS) SDK with Kitura web app?

我正在尝试做的事情:创建受保护的 Kitura 端点并使用 App ID 从 iOS 应用访问它。

我成功地在 Kitura 服务器上配置了 App ID,以便我可以登录并成功访问受保护的端点。

我可以使用与 Kitura 服务器相同的 TenantId 登录到 iOS 演示应用程序并获取令牌。也就是说,我可以成功登录,但是当我使用原始身份验证令牌时,我无法从 iOS 应用程序访问服务器上受保护的端点。

我已经尝试过,使用 postman 将 header 设置为:

Authorization = [sessionToken]

我试过:

Authorization = Bearer [sessionToken]

我在获得令牌后在演示应用程序中尝试过这个:

BMSClient.sharedInstance.initialize(bluemixRegion: AppID.REGION_UK)
BMSClient.sharedInstance.authorizationManager = AppIDAuthorizationManager(appid:AppID.sharedInstance)
var request:Request =  Request(url: "<your protected resource url>")
request.send(completionHandler: {(response:Response?, error:Error?) in
    //code handling the response here
})

希望也许我在 Postman 中设置了错误的令牌,它会执行正确的请求。

但无论我做什么,每次我从 iOS 应用请求受保护的 API 时,我都会得到登录名 HTML 作为响应。

我错过了什么?为什么我不能使用 iOS app session 令牌访问专用端点?

遗憾的是,IBM Cloud App ID 服务的服务器 Swift SDK 的当前版本不支持 API 策略。 这意味着您无法保护单个 REST API。您只能保护 Web 应用程序。