【问题标题】:what is the function of access token in mobilefirst 8mobilefirst 8中访问令牌的功能是什么
【发布时间】:2018-09-12 19:45:34
【问题描述】:

起初,我希望在与 WL 资源通信时需要访问令牌。

预期流量
1.WLAuthorizationManager.login(this.securityCheck ,{'username':username, 'password':password, rememberMe: true}).then(
2.WLAuthorizationManager.obtainAccessToken(this.securityCheck).then(
3.let resourceRequest = new WLResourceRequest('someURL', WLResourceRequest.GET)
resourceRequest.addHeader("Authorization", "Bearer " + accessToken);
4. resourceRequest.send().then(
其中 1 = 登录,2 = 获取访问令牌,3 = 将访问令牌添加到标头,4 = 访问资源

但是,我发现没有2、3,我可以仍然访问资源。
我担心obtainAccessToken 的含义是什么并添加Authorization 标头。

login 之后是否有任何令牌自动绑定到WLResourceRequest
有没有其他不使用WLAuthorizationManager.login的登录方式?
如果可以,如何让服务器知道用户使用WLAuthorizationManager.login 登录?
如果以上为真,自定义登录后,能否获取access token?

【问题讨论】:

    标签: ionic-framework ionic3 ibm-mobilefirst


    【解决方案1】:

    以下是有关这些方法及其工作的一些背景:

    WLAuthorizatonManager.login(securityCheck, credentials) 登录到一个 指定的安全检查。此方法不会创建 OAuth 令牌。

    更多关于WLAuthorizatonManager.login(securityCheck, credentials)的细节。

    WLAuthorizationManager.obtainAccessToken(scope) 返回一个 OAuth 令牌 包含指定范围。如果范围映射到安全检查,它将触发相应的质询,客户端必须处理该质询才能获取令牌。如果在成功的 login(securitycheck) 调用之后调用 gainAccessToken(scope) 并且如果范围映射到相同的安全检查,那么您将看不到质询。将授予 OAuth 令牌。

    更多关于obtainAccessToken()的细节。

    WLResourceRequest 对象用于向任何受保护或 使用绝对或相对 URL 的不受保护的资源。 WLResourceRequest 对象自动处理 MobileFirst 基于 OAuth 的安全模型协议并调用所需的 挑战。

    关于WLResourceRequest的详细信息。

    回答您的问题:

    • 登录后是否有任何令牌自动绑定到 WLResourceRequest?

      如前所述,WLResourceRequest 自动从 MFP 服务器协商一个 OAuth 令牌,该令牌包含保护它正在访问的端点的范围。这可能包括多轮 OAuth 协商,还调用质询处理程序来处理源自服务器的质询。获得正确的令牌后,API 会自动将令牌添加到“授权”标头中的请求中。

    • 还有其他不使用 WLAuthorizationManager.login 的登录方式吗?

      如果通过 WLResourceRequest 访问受保护资源,或者为映射到安全检查的范围调用 WLAuthorizationManager.obtainAccessToken(scope),而不是 WLAuthorizatonManager.login(securityCheck, credentials),这将触发质询响应周期这将以用户身份和令牌结束。

    • 如果可以,如何让服务器知道用户已登录,例如使用 WLAuthorizationManager.login(securityCheck, credentials)?

      MFP 运行时会处理这个问题 - 无论用户身份是通过 WLAuthorizatonManager.login() 设置的,还是 WLResourceRequest / WLAuthorizationManager.obtainAccessToken(scope) 触发通过安全检查的质询响应周期。

    • 如上为真,自定义登录后,能否获取access token?

      不确定“自定义登录”是什么意思,但您始终可以使用 WLAuthorizationManager.obtainAccessToken(scope) 或 WLResourceRequest 获取 OAuth 令牌。不同之处在于,obtainAccessToken() 将为您获取指定范围的令牌,而 WLResourceRequest 将通过自动获取涵盖所有必需范围的 OAuth 令牌来调用端点。

    【讨论】:

    • 感谢您的详细回复。所以我假设抢先登录负责获取AccessToken和资源请求标头
    • 通过自定义登录,我的意思是如果有办法设置一个端点来模拟 WLAuthorizationManager.login 指向并返回访问令牌,以便以后可以将访问令牌添加到资源请求标头中。事实上,这是我看到的一个项目的实现(我无法访问服务器端)。使用 WLResourceRequest 连接到服务器,无需登录和 getAccessToken 调用。我的最终目标是实现登录,而每个资源调用都会延长登录超时。希望也能看到您的建议。
    • 我看不出有什么解决办法
    • 抢先登录不会给你一个令牌。在这种情况下,成功登录后,您可以为特定范围调用 gainAccessToken 或调用 WLResourceRequest()。
    猜你喜欢
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多