Curso Flutter y Laravel App de Turismo
Registro de una empresa mediante el aplicativo móvil en Flutter
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
Implementación del Proceso de registro de un usuario de tipo empresa, lección dividida en 03 partes:
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',
}
);
}
1041 visitas
« Capítulo 29 – Pantalla Foto360
Capítulo 31 – Proceso de Login - Logout »
Descarga el código fuente del proyecto adquiriendo el curso completo
Comprar© Todos los derechos reservados Codea App | ...de frente al código!!! | 2020 - 2023