Nette Documentation Preview

syntax
Configurando o controle de acesso
*********************************

.[perex]
Visão geral das opções de configuração para a Segurança Nette.

Se você não estiver usando toda a estrutura, mas apenas esta biblioteca, leia [como carregar a configuração |bootstrap:].

Você pode definir uma lista de usuários na configuração para criar um [autenticador simples |authentication] (`Nette\Security\SimpleAuthenticator`). Como as senhas são legíveis na configuração, esta solução é apenas para fins de teste.

```neon
security:
	# mostra o painel do usuário no Tracy Bar?
	debugger: ...  # (bool) padrão a verdadeiro

	users:
		# nome: senha
		johndoe: secreto123

		# nome, senha, função e outros dados disponíveis na identidade
		janedoe:
			password: secret123
			roles: [admin]
			data: ...
```

Você também pode definir papéis e recursos para criar uma base para [autorizador |authorization] (`Nette\Security\Permission`):

```neon
security:
	roles:
		guest:
		registered: [guest]  # heranças registradas de convidado
		admin: [registered]  # e admin herda de registrado

	resources:
		article:
		comment: [article]   # recursos herdados do artigo
		poll:
```


Armazenamento do usuário .[#toc-user-storage]
---------------------------------------------

Você pode configurar como armazenar informações sobre o usuário logado:

```neon
security:
	authentication:
		# após quanto tempo de inatividade o usuário será desconectado
		expiration: 30 minutes        # (string) padrão não é definido

		# onde armazenar informações sobre o usuário logado
		storage: session              # (sessão|cookie) padrão é sessão
```

Se você escolher `cookie` como seu repositório, você também pode definir as seguintes opções:

```neon
security:
	authentication:
		# nome do cookie
		cookieName: userId            # (string) výchozí je userid

		# que hospeda é permitido receber o cookie
		cookieDomain: 'example.com'   # (string|domain)

		# restrições ao acessar pedidos de origem cruzada
		cookieSamesite: None          # (Strict|Lax|None) tem como padrão Lax
```


Serviços DI .[#toc-di-services]
-------------------------------

Esses serviços são adicionados ao contêiner DI:

| Nome | Tipo | Descrição
|----------------------------------------------------------
| `security.authenticator` | [api:Nette\Security\Authenticator] | [authenticator |authentication]
| `security.authorizator` | [api:Nette\Security\Authorizator] | [autorizador |authorization]
| `security.passwords` | [api:Nette\Security\Passwords] | [hashing de senha |passwords]
| `security.user` | [api:Nette\Security\User] | usuário atual
| `security.userStorage` | [api:Nette\Security\UserStorage] | [armazenamento |#User Storage]

Configurando o controle de acesso

Visão geral das opções de configuração para a Segurança Nette.

Se você não estiver usando toda a estrutura, mas apenas esta biblioteca, leia como carregar a configuração.

Você pode definir uma lista de usuários na configuração para criar um autenticador simples (Nette\Security\SimpleAuthenticator). Como as senhas são legíveis na configuração, esta solução é apenas para fins de teste.

security:
	# mostra o painel do usuário no Tracy Bar?
	debugger: ...  # (bool) padrão a verdadeiro

	users:
		# nome: senha
		johndoe: secreto123

		# nome, senha, função e outros dados disponíveis na identidade
		janedoe:
			password: secret123
			roles: [admin]
			data: ...

Você também pode definir papéis e recursos para criar uma base para autorizador (Nette\Security\Permission):

security:
	roles:
		guest:
		registered: [guest]  # heranças registradas de convidado
		admin: [registered]  # e admin herda de registrado

	resources:
		article:
		comment: [article]   # recursos herdados do artigo
		poll:

Armazenamento do usuário

Você pode configurar como armazenar informações sobre o usuário logado:

security:
	authentication:
		# após quanto tempo de inatividade o usuário será desconectado
		expiration: 30 minutes        # (string) padrão não é definido

		# onde armazenar informações sobre o usuário logado
		storage: session              # (sessão|cookie) padrão é sessão

Se você escolher cookie como seu repositório, você também pode definir as seguintes opções:

security:
	authentication:
		# nome do cookie
		cookieName: userId            # (string) výchozí je userid

		# que hospeda é permitido receber o cookie
		cookieDomain: 'example.com'   # (string|domain)

		# restrições ao acessar pedidos de origem cruzada
		cookieSamesite: None          # (Strict|Lax|None) tem como padrão Lax

Serviços DI

Esses serviços são adicionados ao contêiner DI:

Nome Tipo Descrição
security.authenticator Nette\Security\Authenticator authenticator
security.authorizator Nette\Security\Authorizator autorizador
security.passwords Nette\Security\Passwords hashing de senha
security.user Nette\Security\User usuário atual
security.userStorage Nette\Security\UserStorage armazenamento