Добрый день. Дошёл в своём приложении до авторизации пользователя (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 перед отдачей страницы и как связать это с аутентификацией (хотя надо ли?) Есть ли какие нибудь примеры проверки доступа?
Извините за много букв за расплывчатость вопросов, но буду рад любой информации