2015-04-13 3 views
2

Я использую sane stack, и я хотел бы добавить passportjs к нему.SANE stack и Passportjs

Я успешно выполнил паспортные документы в приложении для парусов, используя инструкции here. Я пытаюсь использовать эту инструкцию для добавления паспортных данных в нормальное приложение. Я также рассматриваю попытку использовать паруса для входа в систему, выхода из системы, ect ... страниц, поскольку эти инструкции используют представления парусов. Возможно, это не лучшее решение, но сейчас я просто хочу, чтобы что-то работало.

У меня возникла следующая ошибка при входе в систему.

error: Sending 500 ("Server Error") response: 
server | TypeError: undefined is not a function 
server |  at Object.AuthController.login (/Users/someUser/Documents/sanestack/project/server/api/controllers/AuthController.js:50:9) 
server |  at bound (/usr/local/lib/node_modules/sails/node_modules/lodash/dist/lodash.js:729:21) 
server |  at routeTargetFnWrapper (/usr/local/lib/node_modules/sails/lib/router/bind.js:179:5) 
server |  at callbacks (/usr/local/lib/node_modules/sails/node_modules/express/lib/router/index.js:164:37) 
server |  at param (/usr/local/lib/node_modules/sails/node_modules/express/lib/router/index.js:138:11) 
server |  at pass (/usr/local/lib/node_modules/sails/node_modules/express/lib/router/index.js:145:5) 
server |  at nextRoute (/usr/local/lib/node_modules/sails/node_modules/express/lib/router/index.js:100:7) 
server |  at callbacks (/usr/local/lib/node_modules/sails/node_modules/express/lib/router/index.js:167:11) 
server |  at /usr/local/lib/node_modules/sails/lib/router/bind.js:187:7 
server |  at /Users/someUser/Documents/sanestack/project/server/api/policies/passport.js:32:7 
server |  at SessionStrategy.strategy.pass (/Users/someUser/Documents/sanestack/project/server/node_modules/passport/lib/middleware/authenticate.js:318:9) 
server |  at SessionStrategy.authenticate (/Users/someUser/Documents/sanestack/project/server/node_modules/passport/lib/strategies/session.js:67:10) 
server |  at attempt (/Users/someUser/Documents/sanestack/project/server/node_modules/passport/lib/middleware/authenticate.js:341:16) 
server |  at authenticate (/Users/someUser/Documents/sanestack/project/server/node_modules/passport/lib/middleware/authenticate.js:342:7) 
server |  at /Users/someUser/Documents/sanestack/project/server/api/policies/passport.js:28:23 
server |  at initialize (/Users/someUser/Documents/sanestack/project/server/node_modules/passport/lib/middleware/initialize.js:62:5) [TypeError: undefined is not a function] 

Проблема с помощью следующего кода в серверных/API/контроллеры/AuthController.js

33 login: function (req, res) { 
34  var strategies = sails.config.passport 
35  , providers = {}; 
36 
37  // Get a list of available providers for use in your templates. 
38  Object.keys(strategies).forEach(function (key) { 
39  if (key === 'local') { 
40   return; 
41  } 
42 
43  providers[key] = { 
44   name: strategies[key].name 
45  , slug: key 
46  }; 
47  }); 
48 
49  // Render the `auth/login.ext` view 
50  res.view({ 
51  providers : providers 
52  , errors : req.flash('error') 
53  }); 
54 }, 

А также следующий код в /server/api/policies/passport.js

24 module.exports = function (req, res, next) { 
25 // Initialize Passport 
26 passport.initialize()(req, res, function() { 
27  // Use the built-in sessions 
28  passport.session()(req, res, function() { 
29  // Make the user available throughout the frontend 
30  res.locals.user = req.user; 
31 
32  next(); 
33  }); 
34 }); 
35 }; 

Любая помощь будет очень признательна.

+0

и, какая из них - линия 50? –

+0

Я добавил номера строк. Строка 50 была для AuthController.js – user2517182

+0

, поэтому 'res.view' не существует. Не знаю, почему это было бы. –

ответ

3

Я считаю, что вы столкнулись с этой проблемой, потому что вы пытаетесь использовать представления Sails-сервера, а Sane-стек ожидает, что Ember будет обрабатывать все представления ... Если вы посмотрите на https://github.com/mgenev/how-to-sane, вы увидите взаимодействие с клиентом и сервером там и как играют 2, это не паспорт, и у него есть какая-то работа в ожидании, но вы можете получить общую картину

+0

Я пробовал эту ссылку раньше. Я не смог заставить все работать. Когда я сделал «саунд», у меня появилось много ошибок. Такие вещи, как 'Невозможно найти модуль 'ember-cli/lib/broccoli/ember-app'' и' 17:10 error Ожидаемое отступы в 10 символов отступ и многое другое. Возможно, я тоже сделаю запись на этом. В любом случае, я посмотрю на код и посмотрю, смогу ли я что-то сделать. Благодарю. – user2517182

+1

О, проигнорируйте эти ошибки, я добавил linter несколько дней назад и не имел возможности их очистить. о Не можете найти модуль 'ember-cli/lib/broccoli/ember-app', я думаю, вам нужно запустить 'npm install' в папке клиента, а затем установить 'bower install', а также npm install in/server – mobetta

+0

Спасибо! Ваш совет работал над тем, чтобы проект работал и работал. Я вижу, что у вас есть Passport - User Authentication в дополнительных инструментах. Планируете ли вы реализовать паспорт в этом проекте? – user2517182

Смежные вопросы