Inicio » Cursos » Flutter y Laravel App de Turismo

Proceso de Registro | Curso Flutter y Laravel App de Turismo

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',
        }
    );
  }

 


760 visitas

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