Skip to content

FabioSmuu/express-session

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 

Repository files navigation

Repositorio de simplificação a respeito de express-session.

N|Solid N|Solid

Este projeto tem como o intuito, facilitar a criação de rotas e sessões para propósitos simples e diretos.

Tentei deixar o mais simples e cru possível para o entendimento de iniciantes na área.

Dependência Versão
express 4.17.1
express-session 1.17.1
xss 1.0.9

Configurações:

Crie uma chave de segurança para a sua sessão na linha 9 da ./src/index.js

As rotas devem ser criadas no arquivo ./src/rotas.js como, por exemplo, a linha 10.

  • Use esta estrutura como escopo para suas rotas:
  router.get(pagina, require(diretorio).metodo)
  • pagina : se refere ao pathname da url. (//link:8000/pathname)
  • diretorio : aponta para o arquivo.js de sua base referente a esta rota. (./paginas/arquivo.js)
  • metodo : chama o tratamento da pathname para lhe dar com query e body (get/post)

Base da pagina:

Veja os arquivos do diretório ./src/paginas para melhor entendimento.

//Esta função é executada quando for chamado o método GET.
const get = async (request, response) => {
	//Variável de escopo penas para simplificar o código.
	const sess = request.session

	//sess.chave verifica se existe uma sessão de nome "chave".
	if (!sess.chave) return console.log('Sessão inexistente')

	//Este objeto será passado para a pagina trocando ::valor:: por valores.valor
	const valores = {
		valor: xss(sess.chave) //atribui a sessão chave para o objeto.
	}

	//Exibe o html para o cliente, trocando todos ::valores:: pelo objeto "valores".
	response.send(html('diretorio/arquivo.html', valores))
}

//Esta função é executada quando for chamado o método POST.
const post = async (request, response) => {
	//Variável de escopo penas para simplificar o código.
	const sess = request.session

	//Esta comparação barra a inserção de sessão se o valor do input exemplo do html for diferente de 'Smuu'.
	if (xss(request.body.exemplo) !== 'Smuu') return response.send(html('index.html'))

	//Caso exista um valor no input exemplo do html, será inserido a sessão chave.
	if (xss(request.body.exemplo)) sess.chave = xss(request.body.exemplo)

	//Efetua o redirecionamento da pagina caso a sessão chave seja valida.
	return (sess.chave) ? response.redirect('/dashboard') : response.send(html('index.html', valores), {valor: 'String aleatoria.'})
}

module.exports = { get, post }

HTML:

Use normalmente o direitorio ./src/www para criar sua aplicação.

<form action="/" method="POST">
	<input name="exemplo" placeholder="Este é um input de exemplo"/>
	<button>Ok</button>
</form>

::valor::

Obrigado pela sua atenção!

About

Este repositório tem como intuito, demonstrar como efetuo minhas rotas e sessões.

Topics

Resources

Stars

Watchers

Forks