我正在尝试为本地托管的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后端)来获取令牌。
任何帮助都非常感激 - 我很接近......只是缺少一些关键的核心概念(像往常一样)。