RingCentral JavaScript SDK句柄重定向URI指向本地JavaScript函数

时间:2017-12-14 14:14:13

标签: javascript oauth-2.0 ringcentral

RingCentral JavaScript SDK处理重定向URI指向本地JavaScript函数

根据Doc,他们提供选项

  

RingCentral.SDK.handleLoginRedirect()

但不知道如何使用

var SDK = require('ringcentral');
rcsdk = new SDK({
        server: SDK.server.sandbox,
        appKey: '_app_key',
        appSecret: 'app_password',
        redirectUri: ''
    })
function handleredirectURI(){
//handle redirections
}

我们需要指出我们的handleredirectURI功能 提前致谢

1 个答案:

答案 0 :(得分:1)

根据文档。背景是三条腿的oAuth。这是一个演示:https://github.com/ringcentral/ringcentral-demos-oauth/tree/master/javascript

然而,该演示并未使用handleredirectURI方法。这意味着该方法只是一种实用方法,并不需要使用它。

对于handleredirectURI的使用,我会在稍后回来更新我的答案。

<强>更新

以下是handleredirectURIhttps://github.com/ringcentral/ringcentral-js/blob/669b7d06254d3620c5a5f24c94b401aa862be948/src/SDK.js#L115-L124

的源代码

您可以看到该方法解析win.location以获取一些有用的数据,并postMessage返回其开启者。

handleredirectURI的单元测试:https://github.com/ringcentral/ringcentral-js/blob/669b7d06254d3620c5a5f24c94b401aa862be948/src/SDK-spec.js#L27-L63

更新2

我看了handleredirectURI&#39;源代码,单元测试,示例代码再次,我认为它的用法就像它的文档中所写的那样:

  

弹出设置

     

当您的应用在第三方网站上呈现为小部件时,此设置很有用。

     

如果您只想在弹出窗口中打开RingCentral登录页面,可以在应用程序的登录页面中使用以下简写:

var platform = rcsdk.platform();
var loginUrl = platform.loginUrl({implicit: true}); // implicit parameter is optional, default false
platform
    .loginWindow({url: loginUrl}) // this method also allows to supply more options to control window position
    .then(function (loginOptions){
        return platform.login(loginOptions);
    })
    .then(...)
    .catch(...);
  

在这种情况下,您的目标网页(Redirect URI指向的目标网页)需要调用以下代码:

RingCentral.SDK.handleLoginRedirect();

解释:

  • 运行第一个代码段以打开登录弹出窗口。
  • 在重定向到页面时,运行第二个代码段(一行代码)以完成其他所有操作。
  • 之后,授权部分完成,您可以调用其他API。

如果您有更多问题,请与我们联系。