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

 


616 visitas

Curso Flutter y Laravel App de Turismo

Curso Flutter y Laravel App de Turismo

Descarga el código fuente del proyecto

USD 27.00 57.00


COMPRAR CURSO

Codea App
Codea App FullStack

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

You Fb Tik Pin

© Todos los derechos reservados Codea App | Cursos de programación | 2020 - 2022