在请求代码开始oAUTH2流程时,您如何处理CORS?

时间:2018-02-25 17:48:20

标签: jquery oauth-2.0 canvas-lms lti

我正在尝试为本地托管的Web应用程序获取一个非常小的概念证明oauth2流程,并且命中云端oauth提供程序(Canvas LMS oauth2 / LTI)。

我需要用户点击我的初始页面(本地Web应用程序)上的一个按钮,该按钮使用外部oauth2服务器启动该过程。

如果我将以下内容作为可点击链接,那么我会获得用户授权页面,如果用户点击“接受”,则会提供授权代码。但我需要授权代码在我的javascript中可用,而不是显示在重定向页面上。

<a id='authClick' href='https://XXX.instructure.com//login/oauth2/auth?client_id=XXX&response_type=code&scope=auth/userinfo&redirect_uri=http://localhost/oauth_complete.php'></a>

如果我使用AJAX拨打电话,我会遇到CORS错误 - 这似乎是合法且基本的网络安全。

以下是我的尝试:

 $.ajax({
      type: "GET",
      url: "https://XXX.instructure.com/login/oauth2/auth?client_id=XXX&response_type=code&redirect_uri=http://localhost/oauth_complete.php",
        processData: true,
        success: function(canvasCode) {
          console.log('Called Canvas - response: ' + canvasCode);
        },
        error: function (data) {
           console.log('Fail - could not get LTI auth token...');
        }
      });

我不明白你如何调用auth服务器并获得一个代码然后你可以使用(第2步,在javascript或者php后端)来获取令牌。

任何帮助都非常感激 - 我很接近......只是缺少一些关键的核心概念(像往常一样)。

0 个答案:

没有答案