tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:JSforceのConnectionのUsername and Password Loginを試してみました

Node.jsについて少し勉強したのでJSforceのConnectionのUsername and Password LoginをつかったSalesforceログインを試してみました。

f:id:tyoshikawa1106:20160413123300p:plain


処理はこんな感じで試してみました。

// Salesforce接続情報
sfdcUserInfo = {};
jsforceConn = new jsforce.Connection();

// ログインページ POST
router.post('/', function(req, res) {
  
  var userId = req.body.userId;
  var password = req.body.password;

  // Salesforceにログイン
  jsforceConn.login(userId, password, function(err, loginResult) {
    if (err) {
      console.error(err);
      res.render('pages/index', {message : err});
      return false;
    }
    // ユーザ情報を取得
    jsforceConn.identity(function(err, identityResult) {
      if (err) {
        console.error(err);
        res.render('pages/index', {message : err});
        return false;
      }
      sfdcUserInfo = identityResult;
      res.redirect('/home');
    });
  });
});


jsforceConn.loginをつかってSalesforceにログインして変数『jsforceConn』にSalesforceの接続情報をセットできます。ログイン後にjsforceConn.identityをつかってユーザ情報を取得できます。


これを試してみて無事にSalesforceにログインして、ユーザ情報を取得することができました。
f:id:tyoshikawa1106:20160413125203p:plain


やってみてわかったのですが、画像URLは取得できているのですが、画像が表示されませんでした。
f:id:tyoshikawa1106:20160413125423p:plain


もしかしてと、別タブを開いてSalesforce組織にログインしてからもう一度画面を表示してみると・・・
f:id:tyoshikawa1106:20160413125532p:plain


今度は画像が表示されました。
f:id:tyoshikawa1106:20160413125616p:plain


この方法でログインした場合はセッションIDを取得できなそうなので、こういった使い方には向いていないみたいです。(たぶんデータ連携のときに利用できると思います。)
f:id:tyoshikawa1106:20160413130746p:plain)


JSforceはOAuth認証も用意されています。Webアプリをつくるときはこっちで対応すればよさそうです。


JavaScriptからですがOAuth2でログインする方法でこんな感じのことができるのを確認しました。