Salesforce OAuth身份验证不适用于用户名和密码

时间:2016-10-16 18:20:28

标签: oauth-2.0 salesforce postman

  • 我在salesforce中创建了一个新的连接应用
  • 我正在尝试使用用户名和密码进行身份验证 - 使用Postman
  • 获取令牌的OAuth方法
  • 我使用client_id,client_secret,用户名和密码点击以下端点https://login.salesforce.com/services/oauth2/token
  • 我收到以下错误: { "错误":" invalid_grant", " error_description":"身份验证失败" }

  • 验证用户名和密码是否正确

我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

如果您使用用户名和密码OAuth身份验证,请确保已将唯一安全密钥(对于您正在使用的用户名)与密码连接在一起。例如(以Python为例),您的请求应为:

import requests
import json

params = {
    "grant_type": "password",
    "client_id": "client_id", # Consumer Key
    "client_secret": "client_secret", # Consumer Secret
    "username": "username", # The email you use to login
    "password": "password + unique_security_key"}

headers = {'content_type':'application/x-www-form-urlencoded'}

r = requests.post("https://login.salesforce.com/services/oauth2/token", params=params, headers=headers)
access_token = r.json().get("access_token")
instance_url = r.json().get("instance_url")
print("Access Token:", access_token)
print("Instance URL", instance_url)

要获取安全密钥:

  • 登录到您的Salesforce帐户
  • 单击右上角的用户名。
  • 在左侧窗格中,单击“个人”>“重置我的安全令牌”

唯一安全令牌将发送到您的电子邮件。请使用您的密码连接密钥。

如果仍然遇到错误,请检查以下步骤:

导航应用程序>管理连接的应用程序>您的连接的应用程序>编辑> OAuth策略>允许所有用户都可以自我授权

AND

管理应用程序>联网应用程序>您的联网应用程序>启用IP放宽以放宽IP限制。

希望这会有所帮助。