code: function login (opener, prompter, opts) {
    validate('FFO', arguments)
    opts = ProfileConfig(opts)
    return loginWeb(opener, opts).catch(er => {
      if (er instanceof WebLoginNotSupported) {
        process.emit('log', 'verbose', 'web login not supported, trying couch')
        return prompter(opts.creds)
          .then(data => loginCouch(data.username, data.password, opts))
      } else {
        throw er
      }
    })
  }
docs: try loginWeb, catch the "not supported" message and fall back to couch