Как проверить, вошел ли пользователь без request.session - PullRequest
0 голосов
/ 23 февраля 2020

Я реализую веб-приложение, используя Express и Docker. Я также использую Трехуровневую архитектуру . Когда пользователь входит в систему, я сохраняю эту информацию в сеансе. У меня есть посты в качестве ресурса в моем приложении. Чтобы получить идентификатор blogpostId, я отправлю запрос в базу данных на уровне Доступ к данным следующим образом:

const db = require('./db')

exports.getBlogpostId = function(id ,callback){

    const query = "SELECT * FROM blogposts WHERE blogId = ?"
    const value = [id]
    db.query(query, value, function(error, blogpost){
        if(error){
            callback("DatabaseError", null)
        }else{
            callback(null, blogpost)
        }
    })
}

Теперь в моем Business logi c layer Я хочу проверить, вошел ли пользователь в систему или нет, что-то вроде этого:

const blogRepo = require('../dal/blog-repository')


exports.getBlogpostId = function(id){

    if(/*If the user is logged in*/){
        return blogRepo.getBlogpostId(id)
    }else{
        throw "Unauthorized!"
    }
}

Как я могу проверить, вошли ли они здесь. Как я могу получить сеанс, который я сохранил, когда они вошли в систему?

Спасибо!

1 Ответ

0 голосов
/ 23 февраля 2020

Итак, бизнес-уровень вообще ничего не знает о состоянии входа в систему. Это бизнес-логика c, а не веб-логика c.

Если вы хотите, чтобы у него был доступ к подобному состоянию, вы должны передавать это состояние в качестве аргументов при каждом вызове.

Вы можете либо решить, что бизнес-логи c в порядке, чтобы увидеть объект сеанса и передать в него весь объект сеанса, либо вам нужно передать определенные c части объекта сеанса, которые бизнес логи c нужны такие как состояние аутентификации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...