Importância da chave secreta da sessão no Express Web Framework

Estou bastante confuso com a importância de umsegredo da sessão. Estou entrando no desenvolvimento web com Express e Node, e no momento, estou tentando implementar um login simples. O código abaixo é retirado do exemplo de sessões no Express.

// Required by session() middleware
// pass the secret for signed cookies
// (required by session())
app.use(express.cookieParser('keyboard cat'));

// Populates req.session
app.use(express.session());

Ele usa "gato de teclado" como um segredo de sessão. Muitas das coisas que eu tenho procurado em torno de segredos de sessão me recomendam mudar isso para algo personalizado. Agora tenho 3 perguntas específicas sobre isso.

Por que eu não vi isso antes quando estava trabalhando com PHP?Para que serve exatamente o segredo da sessão?Digamos que eu mude a chave da sessão. Meu código é de código aberto. Não vai mudar isso ser um pouco redundante nesse caso? Eu não vejo pedindo ao usuário uma chave personalizada como uma opção.Eu estava pensando em gerar um UUID aleatório para preencher a chave. Existem problemas com isso? (em termos de segurança)

questionAnswers(3)

yourAnswerToTheQuestion