Как организовать регистрацию, авторизацию и роли в приложении на Node.js?

Добрый день. Дошёл в своём приложении до авторизации пользователя (Node.js+Angular2+MongoDb) Прежде чем попробовать, хотелось бы пояснить для себя некоторые вещи:
1) Регистрацию я делаю как обычно - имя пользователя, пароль ..... - перед сохранением в node.js я проверяю на уникальность и делаю
UserSchema.pre('save', function (next) {
  if (this.password && this.isModified('password')) {
    this.salt = crypto.randomBytes(16).toString('base64');
    this.password = this.hashPassword(this.password);
  }

  next();
});
Так ли это? Достаточно ли этого crypto для сохранения пароля?

2) Про авторизацию и аутентификацию я слышал, но никогда не использовал jwt. Нашёл "библиотеку" angular2-jwt, но это клиентская часть, а, как понимаю, необходима серверная часть, которая и будет отсылать токен на клиент. Есть какие-нибудь примеры с сервером и что должно включаться в этот токен?
3) В случае с jwt - как организовывается проверка private информации? Например страницы с личной информацией, своих настроек и прочего?
4) В моём приложении необходимо делать доступы на страницы пользователей, которыми они могут обмениваться. Т.е. есть, например, какой нибудь пост, к которому владелец поста может дать доступ другим зарегистрированным пользователям. Что-то вроде
var BlogPost = new Schema({
  title: {
    type: String  
  },
  content: {
    type: String
  },
  date: Date,
  UserAccess : {
    // User_id1, User_id2,User_id3
  }
});

Как организовать проверку на доступ к BlogPost? Чтобы запрашивать поле UserAccess перед отдачей страницы и как связать это с аутентификацией (хотя надо ли?) Есть ли какие нибудь примеры проверки доступа?
Извините за много букв за расплывчатость вопросов, но буду рад любой информации
  • Вопрос задан
  • 2605 просмотров
Пригласить эксперта
Ответы на вопрос 2
gelevanog
@gelevanog
javascript developer
Я конечно могу ошибаться, но посмотрите как это реализовано здесь - http://mean.io/#!/ или здесь - meanjs.org. Я пару лет назад использовал meanjs.org и там было все из коробки.
Ответ написан
Комментировать
@Vovchikvoin
Вы возможно не слышали про сессии? В ноде они есть и работают по сути также как и скажем на Apache. Погуглите это точно что вам нужно, не лезте в какие то дебри ангуляра.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы