Skip to content

O CodeIgniter é um framework de desenvolvimento de aplicações em PHP. Seu objetivo, por meio de um abrangente conjunto de bibliotecas voltadas às tarefas mais comuns, de uma interface e uma estrutura lógica simples para acesso àquelas bibliotecas, é possibilitar que o usuário desenvolva projetos mais rapidamente

Notifications You must be signed in to change notification settings

daniel-oliv3/CodeIgniter-4

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

1 - PHP, CODEIGNITER DICAS & SOLUÇÕES.

Sobre esta Playlist...

  • Não é uma playlist para aprender Codelgniter do zero.
  • Aprofundar os conhecimentos da framework.
  • Dicas e pequenos projetos para desenvolvimento de soluções web.
  • Destaque de novidades na evolução do framework.

Requisitos Necessários.

  • HTML, CSS, JS, PHP, MySQL, Terminal, Etc...
  • Laragon, Visual Studio Code, HeidiSQL, Git, Composer, Google Chrome.

Porquê o CodeIgniter vc Laravel?

  • Ambas são frameworks Full Stack de PHP.

  • Laravel é mais conceituada e com mais demanda de mercado.

  • CodeIgniter: MVC, configuração simples, desenvolvimento rápido, fácil de aprender.

  • Laravel: Arquitetura limpa, mais robusto, com grande ecosistema.

  • CodeIgniter tem uma performace mais rápida do que o laravel.

  • CodeIgniter para projetos de média escala.

  • Laravel para média e grande escala.

  • Links Extras: https://pt.wikipedia.org/wiki/CodeIgniter

  • Documentação - https://codeigniter.com/user_guide/index.html

2 - COMO PREPARAR UM AMBIENTE DE DESENVOLVIMENTO PARA PHP.

CodeIgniter.

Laragon.

HeidiSQL.

Versão mais atual do PHP, no HeidiSQL.

  • Site - https://windows.php.net/

  • Baixar: VS16 x64 Non Thread Safe Zip.

  • Criar a pasta php-8.1.9-nts-Win32-vs16-x64 dentro de C:\laragon\bin\php, e colar todos os arquivos da pasta zip.

Terminal (Laragon) Cmder.

  • Verificando a versão do PHP.
php -v

Editar as variáveis de ambiente do sistema.

  • Variáveis de ambiente/path/editar

  • colar o caminho C:\laragon\bin\php\php-8.1.9-nts-Win32-vs16-x64\

Visual Studio Code.

Extenções no Vscode

  • PHP tools

FiraCode.

Monoid.

Composer.

composer -v

Git.

3 - CRIAR UM PROJETO MANUALMENTE OU COM O COMPOSER.

Manualmente.

Composer.

composer create-project codeigniter4/appstarter app_02
  • Ex: app_02

4 - AMBIENTE DE PRODUÇÃO VS AMBIENTE DE DESENVOLVIMENTO.

  • Ex: app_03

5 - CONECTAR O CODEIGNITER A UMA BASE DE DADOS.

  • Ex: app_04

Sparks.

php spark make:model Usuario
  • Cria o arquivo models Usuarios.php na pasta: app/Models/Usuarios.php.

6 - CI AUTH INTRODUÇÃO.

Sistema de Autenticação e Autorização.

  • Autenticação (authentication).
    • Permite verificar se o usúsario pode ou não entrar no sistema.
  • Autorização (authorization).
    • Permite verificar se que áreas ou funcionalidades um usuário pode aceder.

Sistema de Autenticação e Autorização.

  • É um sistema tradicional de login com muitos detalhes.
    • Preparação do projeto.
    • Migrações (migrations).
    • Criar contas de usuário.
    • Confirmação via email.
    • Encriptação de dados pessoais e senhas.
    • Recuperação de senha.
    • Alteração de senha.
    • Login/Logout.
    • Controle de autorizações.
    • ... e muito mais.

Link - https://codeigniter.com/download

PHP Spark.

php spark
  • Cria o ficheiro do controlador
php spark make:controller Main

7 - CI AUTH BASE DE DADOS E MIGRATIONS.

  • Ex: app_06
php spark make:migration Usuarios
php spark migrate

8 - CI AUTH SEEDING E ENCRIPTAÇÃO

  • Ex: app_07
php spark make:seeder usuarios

Extenção Visual Studio code - Random String Generator

  • Visual Studio code,
  • Ctrl + p, ">generate", ... random string/password, , .
php spark db:seed Usuarios
php spark migrate:rollback
php spark migrate

Comando para pesquisar na tabela descriptado

  • SELECT AES_DECRYPT(username, UNHEX(SHA2('3y8FHYGfThUpcvE0AC25Sj5OlsD17Ab8', 512))) usuario, passwrd FROM users

9 - CI AUTH FORMULÁRIO DE LOGIN.

  • Ex: app_08

Bootstrap.

10 - CI AUTH MODEL E VERIFICAÇÃO DE LOGIN.

  • Ex: app_09

Validação do formulário.

  • Model users
    • Buscar os dados do utilizador a partir do formulário submetido.
    • Retorno de true ou false, consoane login ok ou nok.
php spark make:model User

11 - CI AUTH ANÁLISE DE LOGIN COM HELPER.

  • Ex: app_10

  • Usuario logado?

    • Não -> mostra quadro login
    • Sim -> mostra página interior

12 - CI AUTH CAPTAÇÃO DE DADOS APÓS LOGIN COM SUCESSO.

  • Ex: app_11

  • Logout: Google Chrome, F12/Application/Storage/Clear site data

13 CI AUTH REFATORAR O CÓDIGO.

  • Ex: app_12
php spark make:controller UserController

14 - CI AUTH USANDO FILTERS.

Filters

php spark make:filter User/UserFilter

15 - CI AUTH MELHORAR AS REGRAS DE NEGÓCIO DA APLICAÇÃO.

  • Ex: app_14

16 - CI AUTH IMPLEMENTAÇÃO DOS FILTERS.

  • Ex: app_15
php spark make:filter UserLoggedInFilter

17 - CI AUTH INTRODUÇÃO À VALIDAÇÃO DO FORMULÁRIO.

Validation Rules

18 - CI AUTH MOSTRAR OS ERROS DE VALIDAÇÃO.

19 - CI AUTH VALIDAÇÃO DA PASSWORD E REGEX.

Lista completa spark

  • Spark
php spark

db:seed

  • Executa o propagador especificado para preencher dados conhecidos no banco de dados.
php spark db:seed usuarios

regex_match

  • Falha se o campo não corresponder ao normal expressão.

20 - CI AUTH METODOLOGIAS PARA FACILITAR O DESENVOLVIMENTO.

21 - CI AUTH LOGOUT.

22 - CI AUTH AREAS COM ACESSO CONTROLADO.

23 - CI AUTH AUTORIZAÇÃO.

php spark db:seed usuarios
php spark make:filter User/UserIsAdmin

24 - CI AUTH ELEMENTOS DO INTERFACE.

25 - CI AUTH PREPARAÇÃO DA CRIAÇÃO DE CONTA DE USUÁRIO.

Formulário de nova conta
    Usuario
    Password
    Repetir password

    [Criar]

    |
    |
    |
    v

    Verifica se já existe user com email indicado
        Sim - Não pode criar conta

        Não

        - Criar um código (Purl)
        - Criar a conta nos users
        - Enviar um email com purl (link)
        - Conta está ativa

php spark migrate:rollback
php spark migrate
php spark db:seed usuarios

26 - CI AUTH FORMULÁRIO DE CRIAÇÃO DA CONTA DE USUÁRIO.

matches  |  Yes  | O valor deve corresponder ao valor do campo
no parâmetro.  | matches[field]

27 - CI AUTH VERIFICAR SE CONTA JÁ EXISTE.

  • Ex: app_27

28 - CI AUTH CRIAR CONTA DE UTILIZADOR COM PURL.

Create new user account
    - Guardar os dados de username e password
    - Gerar um purl (Guardado na base de dados)
    - retornar o purl

Send email with purl to validation email address
    - Preparar um email com o purl
    - Enviar o email para username

29 - CI AUTH COMO CRIAR UM PURL.

30 - CI AUTH ENVIO DO EMAIL COM O PURL

//Exemplo
$email = \Config\Services::email();

$email->setFrom('your@example.com', 'Your Name');
$email->setTo('someone@example.com');
$email->setCC('another@another-example.com');
$email->setBCC('them@their-example.com');

$email->setSubject('Email Test');
$email->setMessage('Testing the email class.');

$email->send();

31 - CI AUTH PREPARAÇÃO DAS LÓGICAS DE CONCLUSÃO DO REGISTO.

SELECT AES_DECRYPT(username, UNHEX(SHA2('3y8FHYGfThUpcvE0AC25Sj5OlsD17Ab8', 512))) usuario, purl FROM users
Verificar se o purl é válido (Tamanho)
Verificar se existe o purl na base de dados.
    - Não: Redirecionar para a pagina inicial
    - Sim: 
        Passa a ativo = 1
        Atualiza o updated_at
        remove o purl

        Apresenta uma mensagem a indicar que a conta foi confirmada

32 - CI AUTH LÓGICAS PARA CONCLUSÃO DO REGISTO

Verificar se existe o purl na base de dados.
    - Não: Redirecionar para a pagina inicial
    - Sim: Apresenta uma mensagem a indicar que a conta foi confirmada

33 - CI AUTH PÁGINA DE CONFIRMAÇÃO DA NOVA CONTA DE USUÁRIO

34 - CI AUTH FORMULÁRIO PARA RECUPERAR PASSWORD

35 - CI AUTH 035 PREPARAÇÃO PARA RECUPERAR PASSWORD

Validação do formulário
    - Email válido

Verificar se o usuário existe na base de dados
    - Não: Redirecionar para home
    - Sim: Criar um purl, adicionar á db, enviar um email com purl e apresentar a mensagem

Verificar se o usuário está em condições de recuperar a senha
    - Verifica se o usuário tem conta na base de dados
    - Email existe, 
        - ativo = 1

36 - CI AUTH VERIFICAÇÕES NA BASE DE DADOS

SELECT AES_DECRYPT(username, UNHEX(SHA2('3y8FHYGfThUpcvE0AC25Sj5OlsD17Ab8', 512))) usuario, purl, active FROM users

37 - CI AUTH ENVIO DE EMAIL PARA RECUPERAR A PASSWORD

38 - CI AUTH RECEBER O PEDIDO DE ALTERAÇÃO DA PASSWORD

Verificar se o purl está associado a uma conta de utilizador
    Não: Vai para a home page
    Sim: Apresenta uma página com o formulário para definir a nova senha

39 - CI AUTH ID DO CLIENTE PARA ALTERAR A PASSWORD

http://localhost/CodeIgniter-4/app_39/public/index.php/user_recover_password_check/hfOSGnoVgdYR

40 - CI AUTH MENSAGEM DE ERRO COM FONTAWESOME

Font-Awesome

41 - CI AUTH OPENSSL ENCRYPT E DECRYPT

http://localhost/CodeIgniter-4/app_41/public/index.php/user_recover_password_check/hfOSGnoVgdYR
  • New
http://localhost/CodeIgniter-4/app_41/public/index.php/user_recover_password_check/PYAZcTECXVGI
  • Open SSL Encrypt
php -m

42 - CI AUTH OPENSSL ENCRYPT E DECRYPT PARTE 2

- Verificar se o id_user existe no post e se é válido
- Validar o formulário

- Formulário Ok?
    - Atualizar o password na base de dados
    - Apresentar página de password alterada com sucesso

43 - CI AUTH VALIDAÇÃO DO FORMULÁRIO DE DEFINIÇÃO DA PASSWORD

http://localhost/CodeIgniter-4/app_43/public/index.php/user_recover_password_check/nEtyXTJLLSxA

Form Validation - Available Rules

  • Matches
Matches     | O valor deve corresponder ao valor do campo
no parâmetro.|      matches[field]

44 - CI AUTH FINALIZAÇÃO DA RECUPERAÇÃO DA PASSWORD

45 - CI AUTH FINALIZAÇÃO DO PROJETO

46 - CI AUTH CRIAÇÃO DO REPOSITÓRIO NO GITHUB

  • Ex: app_46
composer update

Github

git config --global user.name "Seu Nome"
git config --global user.email "Exemplo.@gmail.com"
git init
git status
git add .
git commit -m "meu commit"

…or push an existing repository from the command line

git remote add origin https://github.com/daniel-oliv3/ci-auth-codeigniter.git
git branch -M main
git push -u origin main

About

O CodeIgniter é um framework de desenvolvimento de aplicações em PHP. Seu objetivo, por meio de um abrangente conjunto de bibliotecas voltadas às tarefas mais comuns, de uma interface e uma estrutura lógica simples para acesso àquelas bibliotecas, é possibilitar que o usuário desenvolva projetos mais rapidamente

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published