我正在尝试为本地托管的 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...');
}
});
我不明白您如何调用身份验证服务器并获取您可以使用的代码(步骤 2,在 javascript 或 php 后端)来获取令牌。
任何帮助深表感谢 - 我很接近......只是错过了一些关键的核心概念(像往常一样)。