首页 > 解决方案 > 如何从 Angular 7 应用程序登录到 Salesforce?

问题描述

我需要以用户身份登录到 salesforce。因此,用户将输入他们的用户名和密码进行身份验证。我们目前有一个非常糟糕的 Electron 应用程序,它通过生成一个弹出窗口来执行此操作,该窗口转到销售人员登录页面并返回到另一个销售人员页面,URL 中有一个令牌。然后在回调函数中将其传递回原始页面。但是,当我在 Angular 7 中使用此代码时,出现以下错误

阻止具有来源“ http://localhost:4200 ”的框架访问跨域框架。

该代码看起来也有点像 hack,而不是与 salesforce 进行身份验证的正确方法......

有谁知道这样做的正确方法,因为我的搜索只抛出了使用非特定用户特定的 API 进行身份验证的方法。

标签: angularauthenticationoauthsalesforce

解决方案


您可以使用 Rest API 或 Soap API 连接到 salesforce 并根据用户名和密码获取会话 ID

如果您使用 REST API: 创建连接的应用程序:使用以下步骤创建新的连接应用程序。

使用 Salesforce 创建新的连接应用程序。

1.在 Lightning Experience 中,使用应用程序管理器创建连接的应用程序。在“设置”中,在“快速查找”框中输入“应用程序”,然后选择“应用程序管理器”。单击新建连接的应用程序。

2.在 Salesforce Classic 中,从设置中,在快速查找框中输入应用程序,然后选择应用程序(在构建 | 创建下)。在已连接的应用程序下,单击新建。

3.输入您的应用程序的名称。

4.输入联系电子邮件信息,以及适合您申请的任何其他信息。

5.选择启用 OAuth 设置。

6.输入回调 URL。根据您使用的 OAuth 流程,这通常是用户浏览器在成功验证后重定向到的 URL。由于此 URL 用于某些 OAuth 流以传递访问令牌,因此 URL 必须使用安全 HTTP (HTTPS) 或自定义 URI 方案。用换行符分隔多个回调 URL。回调 URL 字段累计限制为 2000 个字符。如果您输入多个 URL 并且它们超出此限制,请配置另一个连接的应用程序以管理更多回调 URL。

7.将所有支持的 OAuth 范围添加到选定的 OAuth 范围。这些范围是指运行已连接应用程序的用户授予的权限。

8.输入信息 URL 的 URL。用户可以在此处获取有关您的应用程序的更多信息。

9.单击保存。

10.创建并显示Consumer Key,创建Consumer Secret(点击链接显示)。

11.一旦你定义了一个连接的应用程序,你就可以使用消费者密钥和消费者秘密来验证你的应用程序。请参阅 Salesforce 在线帮助中的创建连接的应用程序,了解为您需要的身份验证类型创建连接的应用程序的具体步骤。

在 Angular 中创建一个服务,使用以下命令调用您的标准 Salesforce rest api 进行登录:

-方法:POST

-端点:https://services/oauth2/token?grant_type=password&client_id= &client_secret=&username=&password=

您将收到您的会话 ID 不要使用 Iframe 它永远不会工作

Soap:使用您的 wsdl 合作伙伴您可以从 wsdl 生成您的函数并使用它进行登录以获取会话 ID

问候,


推荐阅读