我一直在开发一个新的电子应用程序,该应用程序具有使用Spotify API的react。我正在使用oAuth来通过Spotify进行身份验证并返回访问令牌,这就是为什么如果在webpack开发服务器上运行,并且可以在本地开发环境中作为应用正常运行并且可以提供回调网址的原因。
但是,打包并安装电子应用程序后,就不再使用开发服务器,而JS捆绑包则与应用程序打包在一起。
在这个阶段,我应该如何访问oauth服务器并返回有效的回调URL以获取令牌?
答案 0 :(得分:1)
您可以注册自定义协议并通过电子进行拦截,因此您不需要Web服务器。您可以设置本机桌面/移动应用程序的缸,而不是Web应用程序的重定向uri。
https://electronjs.org/docs/api/protocol
protocol.registerFileProtocol('yourprotocolname', (request, callback) => {
//parse authorization code from request
}, (error) => {
if (error) console.error('Failed to register protocol')
})
在oauth配置中将应用程序的容器设置为您的协议名称:// example