Inicio » Cursos » Flutter y Laravel App de Turismo

Curso Flutter y Laravel App de Turismo

Lección: 30 ➜ Proceso de Registro

Implementación del Proceso de registro de un usuario de tipo empresa, lección dividida en 03 partes: Lógica JWT Laravel, Formulario Flutter y Testing

Lección 30: Proceso de Registro

Implementación del Proceso de registro de un usuario de tipo empresa, lección dividida en 03 partes:

  • Lógica JWT Laravel
  • Formulario Flutter
  • Testing y UI

Primera parte:

Ruta para invocar el método de registro

Route::post('/registro',[App\Http\Controllers\Api\AuthController::class, 'registro']);
<?php

namespace App\Http\Controllers\Api;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\User;
use JWTAuth;
use Tymon\JWTAuth\Exceptions\JWTException;
use Auth;
use Spatie\Permission\Models\Role;

class AuthController extends Controller
{
    public function registro(Request $request){
       $password_plano =$request->password;

       $password_encriptado = bcrypt($password_plano);

       $request->request->add(['password'=>$password_encriptado]);
       // creacion del usuario:empresa
       $user = User::create($request->all());
       $user->assignRole("empresa");

       $request->request->add(['password'=>$password_plano]);

        return $this->login($request);
    }
    public function login(Request $request){
        $input = $request->only("email","password");
        $token = null;
        if(!$token = JWTAuth::attempt($input)){
            return response()->json([
                'success' => false,
                'mensaje' => 'credenciales incorrectas'
            ], 401);
        }
        $user = Auth::user();
        return response()->json([
            'success' => true,
            'user' => $user,
            'token' =>$token
        ], 200);

    }
    public function logout(Request $request){       
        JWTAuth::invalidate(JWTAuth::parseToken($request->token));
        return response()->json([
            'success' => true
        ], 200);
    }


}

 

Segunda parte se refiere al diseño del formulario y proceso de registro ademas de la implementación de un método en la API

import 'dart:convert';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:app/api/Api.dart';
import 'package:flutter/material.dart';

class pantallaRegistro extends StatefulWidget {
  @override
  _pantallaRegistroState createState() => _pantallaRegistroState();
}

class _pantallaRegistroState extends State<pantallaRegistro> {
  TextEditingController _nombre = TextEditingController();
  TextEditingController _email = TextEditingController();
  TextEditingController _password = TextEditingController();
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text("REGISTRO"),
        ),
        backgroundColor: Colors.amber,
        body: Container(
          padding: EdgeInsets.all(20),
          child:Card(
            elevation: 20,
            child:  Padding(
              padding: EdgeInsets.all(20),
              child: Column(
                mainAxisSize: MainAxisSize.min,
                children: [
                  TextField(
                    controller: _nombre,
                    decoration: InputDecoration(hintText: "Nombre :"),
                  ),
                  TextField(
                      controller: _email,
                      decoration: InputDecoration(hintText: "Correo :")),
                  TextField(
                    controller: _password,
                    decoration: InputDecoration(hintText: "Password :"),
                    obscureText: true,
                  ),
                  FlatButton(
                    onPressed: (_registro),
                    child: Text("REGISTRO", style: TextStyle(color: Colors.white),),
                    color: Colors.amber,
                  )
                ],
              ),
            ),
          ),
        ));
  }

  void _registro() async {
    // validacion
    var datos = {
      'name': _nombre.text,
      'email': _email.text,
      'password': _password.text
    };

    var respuesta = await Api().registro(datos, "registro");
    var contenido = json.decode(respuesta.body);
    if (contenido['success']) {
      SharedPreferences registro = await SharedPreferences.getInstance();
      registro.setString("token", contenido['token']);
      registro.setString("user", json.encode(contenido['user']));

      print(contenido['token']);
      //

    } else {
      print(contenido['mensaje']);
    }
  }
}

 

Api.dart


  // registro
  registro(_data,String _url2) async {
    var ruta = _url1+_url2 ;
    return await http.post(
        Uri.http(_dominio, ruta),
        body :json.encode(_data),
        headers: {
          'Content-type' : 'application/json',
          'Accept' : 'application/json',
        }
    );
  }

 


886 visitas

Descarga el código del proyecto

Descarga el código fuente del proyecto adquiriendo el curso completo

Descargar ahora

Más cursos que pueden interesarte

Más cursos

Codea Codea App

México, Colombia, España, Venezuela, Argentina, Bolivia, Perú

© Todos los derechos reservados Codea App | ...de frente al código!!! | 2020 - 2023