我正在开发 Spring MVC + Apache Oltu + Salesforce 集成示例。在此示例中,我在 Salesforce 中创建了连接的应用程序,如下所示:
在这个例子中我使用的是:
- ACCESS_TOKEN_URL = "https://login.salesforce.com/services/oauth2/token "
- AUTHORIZATION_URL = "https://login.salesforce.com/services/oauth2/authorize ";
OAuthBearerClientRequest 请求是什么?与 Github 一样,我使用了 https://api.github.com/user
。销售人员的 URL 是什么?
这是从我的代码中调用的:
但授权中没有任何内容。
例如:OAuthBearerClientRequest
- Linkedin -
https://api.linkedin.com/v1/people/~?oauth2_access_token=
- Facebook -
https://graph.facebook.com/me/friends
- Github-
https://api.github.com/user
销售人员需要什么?
此 URL 也没有我想要的信息:https://developer.salesforce.com/page/Digging_Deeper_into_OAuth_2.0_on_Force.com#Obtaining_an_Access_Token_using_a_SAML_Bearer_Assertion .
我看到的错误:
error=redirect_uri_mismatch&error_description=redirect_uri%20must%20match%20configuration
最佳答案
我只得到了以下详细信息,仍然希望它能正常工作
了解 OAuth 端点 OAuth 端点是您用来向 Salesforce 发出 OAuth 身份验证请求的 URL。
在您的应用程序中发出身份验证请求时,您需要使用正确的 Salesforce OAuth 端点。主要的 OAuth 端点是:
- 授权: https://login.salesforce.com/services/oauth2/authorize
- 对于 token 请求: https://login.salesforce.com/services/oauth2/token
- 用于撤销 OAuth token : https://login.salesforce.com/services/oauth2/revoke
所有端点都需要安全的 HTTP (HTTPS)。每个 OAuth 流程都定义了您需要使用哪些端点以及您需要提供哪些请求数据。 如果您在沙盒组织上验证身份验证,请在上面列出的所有 OAuth 端点中使用“test.salesforce.com”而不是“login.salesforce.com”。
当我花了整整 2 周的时间,我得到了以下详细信息作为 URL 的一部分:
我能够解决问题,现在我也获得了授权代码,它再次获取了 access_token
和 refresh_token
等
{
"access_token":"00D7F0000001I8v!ARgAQDvQR1L4XtPVlSzgBQWwN7vi6an6wp2yVa2E.QeCuJFDmWfjU8UKJnZCY0hNHcISEj4u7aHTzTXKPrZwFO7e_2PjilYY",
"refresh_token":"5Aep8613hy0tHCYdhxJMolioLtSyVWkdY.qjUQIKBDHpKUfFk7DxakBkr.fqMfwxgDn5GuOHbU8EWoeGkNma4kJ",
"signature":"KggDhRHjf3/wmU85Cuz5HPriXpvZ7+9nyVMlwFWoizE=",
"scope":"refresh_token api full",
"id_token":"eyJraWQiOiIyMTAiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdF9oYXNoIjoiYmdveG9KR0k4S1BGa1FvVlU1WlNJUSIsInN1YiI6Imh0dHBzOi8vbG9naW4uc2FsZXNmb3JjZS5jb20vaWQvMDBEN0YwMDAwMDAxSTh2VUFFLzAwNTdGMDAwMDAwbDJiZ1FBQSIsImF1ZCI6IjNNVkc5ZDguLnouaERjUEpaUEl6R0o1VVpEckw3Ykp0aEFRX3YwWUN4ekVlRzExSEkxWXdLTmZ2YVlmRHkwbXNKNmF6RTNFQ01COEVHc0YzTlJ0SjAiLCJpc3MiOiJodHRwczovL2xvZ2luLnNhbGVzZm9yY2UuY29tIiwiZXhwIjoxNTA4MDExNDA5LCJpYXQiOjE1MDgwMTEyODl9.gvzr9Eq5QpYmG3s8daf55ey9GP9O2SvBN_3LpmlDB334pS6cLzHZrq6Z-zH6mXmgNAD7OEyVhPVLlsm5Ln2iOPC3AtfFhadyGNHrtbwxG9GtaiCoTwsBQ7dtyx5fytZBQnDrKJ6EoshduJkRDbC9GzuBVjGU0dAluqiC8A_BoX4DJcbCetXwk4bS1MTaf7IJNYceZhsIbgaq1y7CBIwYtlJHLURbrct6hkPFQc65zPAZB6_SZD0uifFRptp52VEelJ0GKC03PvzAgPw2ofaoWkdq5f7pdAZQRpPUDCKcplB3whc4vk0fk5uMacDnJBNNRkds3SjKvx3X0Qg0pE0xm5ISac20WhEYzeDVtqmBeqqVes0ZFIC5t3hewWmrLicCAedaAWuKK5LnpKdhYoClw8Hmtt5y_ewf34TbSuzc6mQ9O6fMNs4nDBr5_20LuPC6Z5rPXb-GKNONAySa8rcLAB4hcRimWBLVMhrKFIcLc2WLYd1OvqgnoKc6gMh76_Ibha0R8veORbusgd9AYJoQEsPed5-LzFrczP0DX-PHD9NGOsT5b2t9daxy8sZ3t_vfo__6GCYG_Lq-Ee0JOEWaemHp6P6a8OTSufQkXiiYdAwe2iSHi1mF457mZhGR9f_IJzUFXzHF8lY8q6LGZI2uLOfFJX4qYFt3Cj6RXbIP4hQ",
"instance_url":"https://ap5.salesforce.com",
"id":"https://login.salesforce.com/id/00D7F0000001I8vUAE/0057F000000l2bgQAA",
"token_type":"Bearer",
"issued_at":"1508011289104"
}
现在我只关心使用 OAuthBearerClientRequest API 到底需要调用什么?
范围引用 URL:https://help.salesforce.com/articleView?id=remoteaccess_oauth_scopes.htm&type=0
我遇到了 OAuthBearerClientRequest API 的问题,不知道为什么。在这里提出了一个问题:Could not access resource: 401 [{"message":"Session expired or invalid","errorCode":"INVALID_SESSION_ID"}] - works only in RestClient plugin .
关于java - Spring MVC Apache Oltu 和 Salesforce 集成示例 OAUTH_APPROVAL_ERROR_GENERIC : An unexpected error has occured during authentication,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46436388/