【发布时间】:2021-02-10 00:08:37
【问题描述】:
我正在为 Freshdesk 设置 OAuth SSO。我希望我的应用用户能够登录到我的 Freshdesk 支持网站,而无需创建新的用户名/密码。
到目前为止,以下步骤有效:
- 我的网站用户单击“支持”菜单项
- Freshdesk SSO 登录页面出现
- 我的用户在那里点击“客户端登录”
- Freshdesk 使用我的应用正确处理的 GET 请求访问我的授权 URL
- Freshdesk 向我的同一个授权 URL 发送了一个 OPTIONS 请求,我没有做任何事情(除了调用
next()) - Freshdesk 使用包含
redirect_uri的 POST 请求访问我的相同授权 URL
这是我遇到麻烦的时候。我的服务器需要向 Freshdesk 提供的 redirect_uri 发送一些信息,我收到了 CORS 错误。
这是我的服务器代码:
const clientId = req.body.client_id;
const code = Random.secret();
const q = new URLSearchParams({
code: code,
user: user._id,
state: req.body.state
})
const finalRedirectUri = `${req.body.redirect_uri}?${q}`
console.info(finalRedirectUri)
const headers = {
'Access-Control-Allow-Origin': '*'
}
res.writeHead(302, { headers, Location: finalRedirectUri})
res.end()
这是错误信息:
我该如何解决这个问题?
【问题讨论】:
-
这只是我想到的第一件事:您是从 localhost 进行测试吗?如果是这样(你还没有),尝试使用ngrok.com 的隧道可能是个好主意。这样您就可以将本地服务器暴露在互联网上,这可能会避免该问题。
-
我正在使用类似于 ngrok 的东西——pagekite。因此,Freshdesk 确实通过发布请求成功到达了我的授权 URL。嗯......所以你没有在这里得到一个CORS错误?有趣。
标签: javascript oauth single-sign-on freshdesk