我正在开发一个与Electron一起运行的Angular应用程序。 Inside Electron我正在使用基于本教程http://manos.im/blog/electron-oauth-with-github/的OAuth。
一切正常,我在Electron的main.js中收到了access_token。要调用我的端点,我需要在Angular Service中使用此令牌。如何将此令牌传递给Angular?
我的Angular App与Wepack捆绑在一起,然后包含在Electron中。
答案 0 :(得分:0)
如果我理解正确,则在主进程中接收github访问令牌。如果我误解,请告诉我。
听起来你的问题可以改写,“我如何在主进程和渲染器进程之间共享数据?”。最简单的方法是通过IPC(inter-process communication),它允许您在主进程和渲染器进程之间发送消息和数据。 这也可能有用:https://github.com/electron/electron/blob/master/docs/faq/electron-faq.md#how-to-share-data-between-web-pages
//from the main process
const ipc = require('electron').ipcMain;
function githubRequestCallback(response) {
window.webContents.send('github-access-token', {
token: response.data.token
});
}
//in a renderer
const ipc = require('electron').ipcRenderer;
ipc.on('github-access-token', (event, {token}) => {
console.log('i haz the token', token);
});
如果在渲染器中收到该访问令牌(该文章似乎假设如此),那么是的,您可以在localStorage中设置,我认为它将在所有渲染器进程中可用。请注意,localStorage
API仅可从渲染器进程获得,因此如果主进程需要保留它,那么您可能需要考虑其他内容或仅使用IPC来传递它。
另一种选择是将令牌持久保存到文件中,例如使用electron-config(将其保留为JSON)或者如果您有大量数据存储需求,例如LevelDB。然后,主进程和渲染器进程可以根据需要读取/写入相同的配置文件。
围绕多个流程处理数据对于大多数JS人来说都是一个新的挑战,我自己还在想办法:)