在Chrome-Extension中使用Node.js和Express.js

时间:2015-11-24 10:04:52

标签: javascript node.js express google-chrome-extension oauth-2.0

我正在尝试使用 JSforce.js 提供的 oauth2 流程来构建连接 salesforce 的Chrome扩展程序,但我找到的所有示例在线包含 Node.js Express.js 提供的功能,如何将其添加到我的应用范围,而无需用户在使用应用程序之前下载它们。任何人都可以向我澄清这个问题,我在这里有点困惑。谢谢!

编辑:

我从这里得到了这个例子:link

这是使用express.js框架运行的Oauth2代码:

 var jsforce = require('jsforce');
//
// OAuth2 client information can be shared with multiple connections.
//
var oauth2 = new sf.OAuth2({
  // you can change loginUrl to connect to sandbox or prerelease env.
  // loginUrl : 'https://test.salesforce.com',
  clientId : '<your Salesforce OAuth2 client ID is here>',
  clientSecret : '<your Salesforce OAuth2 client secret is here>',
  redirectUri : '<callback URI is here>'
});
//
// Get authz url and redirect to it.
//
app.get('/oauth2/auth', function(req, res) {
  res.redirect(oauth2.getAuthorizationUrl({ scope : 'api id web' }));
});

// Pass received authz code and get access token
//
app.get('/oauth2/callback', function(req, res) {
  var conn = new sf.Connection({ oauth2 : oauth2 });
  var code = req.param('code');
  conn.authorize(code, function(err, userInfo) {
    if (err) { return console.error(err); }
    // Now you can get the access token, refresh token, and instance URL information.
    // Save them to establish connection next time.
    console.log(conn.accessToken);
    console.log(conn.refreshToken);
    console.log(conn.instanceUrl);
    console.log("User ID: " + userInfo.id);
    console.log("Org ID: " + userInfo.organizationId);
    // ...
  });
});

require(),app.get(),sf.Oauth2()是由Node.js和Express.js提供的对象/函数,我无法使用

1 个答案:

答案 0 :(得分:1)

Node.js并不打算在浏览器或Chrome扩展程序中运行,您应该使用these instructions之后的网络浏览器设置并将jsforce.js添加到您的扩展程序页面