Настройка параметров конфигурации Stormpath

Я пытаюсь настроить страницу регистрации с помощью Stormpath и не могу понять, почему параметры конфигурации не работают. EnableXXX и requireXXX работают, но никакая информация внутри web:{...} не отображается. Я пробовал переупорядочивать параметры, но это тоже не работает.

В частности, я хочу:

-- Зарегистрируйте пользователей в /signup вместо /register. Сейчас работает только /register.

-- Я хочу перенаправить их на другой сайт после регистрации. Я случайно указал там google.com, но после завершения регистрации меня все равно перенаправляют на "/".

-- Я хочу изменить порядок полей регистрации. Я хочу, чтобы электронная почта была первым полем, но имя пользователя в настоящее время первое.

Вот app.js:

// Import required modules.
var express = require('express');
var stormpath = require('express-stormpath');
var path = require('path');
var engine = require('ejs-mate');
var app = express();

// use ejs-locals for all ejs templates: 
  app.engine('ejs', engine);

// Configure public views
  app.set('views','./views');

app.use(stormpath.init(app, {
  apiKeyFile: process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'] + ~removed
  secretKey: '~removed',
  application: '~removed',
  enableRegistration: true,
  enableGivenName: false,
  requireGivenName: false,
  enableSurname: false,
  requireSurname: false,
  website: true,
  api: true,
  web: {
    register: {
      uri: '/signup',  // Use a different URL
      nextUri: 'http://google.com',    // Where to send the user to, if auto login is enabled
      fields: {
        passwordConfirm: {
          enabled: true,
          required: true
        }
      },
      fieldOrder: [ "email", "username", "password", "passwordConfirm" ],

    }
  },
  enableUsername: true,
  requireUsername: true,
  enableConfirmPassword: true,
  requireConfirmPassword: true

}
));

app.get('/', function(req, res) {
  res.render('home.ejs', {
    title: 'Welcome'
  });
});

app.get('/', function(req, res) {
  res.send('home page!');
});

app.listen(process.env.PORT || 3000);

Другая, возможно, актуальная информация:

-- Сайт размещен на Heroku, но я не использую дополнение Stormpath, потому что не смог заставить его работать.

-- Я на Mac.

Я застрял на этом в течение нескольких дней, и я не мог понять, что я делаю неправильно. Любая помощь приветствуется.


person redrobotx    schedule 06.09.2015    source источник
comment
Какую версию Stormpath вы использовали?   -  person xtu    schedule 07.10.2015


Ответы (1)


Проблема, вероятно, заключается в следующем: недавно мы выпустили новую версию этой библиотеки с новыми параметрами конфигурации, и похоже, что вы используете наши СТАРЫЕ документы в качестве справочного материала.

Вот что вам нужно сделать:

Обновите до последней версии Express-stormpath. Затем используйте приведенный ниже код: (я преобразовал ваш пример для работы с последней версией):

app.use(stormpath.init(app, {
  client: {
    apiKey: {
      file: process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'] + '~removed'
    }
  },
  application: {
    href: '~removed',
  },
  web: {
    register: {
      enabled: true,
      uri: '/signup',
      nextUri: 'http://google.com',  // don't send them here =)
      fields: {
        username: {
          enabled: true,
          required: true
        },
        givenName: {
          enabled: false,
          required: false
        },
        surname: {
          enabled: false,
          required: false
        },
        passwordConfirm: {
          enabled: true,
          required: true
        }
      },
      fieldOrder: ['username', 'email', 'password', 'passwordConfirm']
    }
  },
  website: true,
  api: true
}));
person rdegges    schedule 15.10.2015