我已连接在组织2中创建并启用OAuth的应用。
我在拥有闪电应用的org1中使用OAuth2.0用户代理工作流程。
在闪电组件页面中单击按钮(名为auth target org)
window.open(endpturl,'_ self'); var currLoc = window.location.href; alert(“ Curr Loc是:'+ currLoc); ” //从单击按钮的位置打印URL(命名为auth target org)。预期此语句将在步骤7之后执行。因此无法捕获访问令牌。
重定向到salesforce授权/登录页面。
输入用户凭据->单击“允许访问”。
但是我无法捕获访问令牌,因为在步骤7之前执行了步骤4。因此无法捕获访问令牌。请告诉我是否有办法获取/捕获访问令牌。
client side controller code (**using window object**):
({ AuthTargetOrg : function (component, event, helper) {
var endpturl = 'https://test.salesforce.com/services/oauth2/authorize?response_type=token&client_id=abc123&redirect_uri=https%3A%2F%2Fbusiness-momentum-162-dev-ed.lightning.force.com%2Fservices%2Foauth2%2Fsuccess';
window.open(endpturl,'_self');
var currLoc = window.location.href;
alert ('Curr Loc is: ' + currLoc); // prints home page URL from where I clicked "auth target org" button, rather this statement expected to execute after step 7.
)}
关于, PJS
答案 0 :(得分:0)
我相信您需要使用Apex处理Oauth舞蹈的重定向。我自己一直在为此挣扎,问题是在闪电组件中,您无法直接对Salesforce端点进行API调用,它将引发各种错误。但是我确实找到了以下代码示例:
https://balkishankachawa.wordpress.com/tag/oauth-with-lightning/
基本上,解决方案是使用Apex和Lightning Out。使用Apex可以从Salesforce身份验证接收重定向,而重定向又可以获取令牌并将其传递回闪电组件。