La semana anterior vimos cómo generar un token al iniciar sesión, esta semana veremos como implementar seguridad y crear usuarios utilizando el token generado al iniciar sesión.
public function create(Request $request){
$data = $request->json()->all();
// acceder al toke que estamos recibiendo desde los headers
$token = $request->header('Authorization');
// verificar que ese toke pertenezca al usuario con el que se inició sesión
$user = Usuarios::where('api_token',$token)->first();
// validar, para verificar si el token pertenece a ese usuario entonces dará permiso para insertar otro usuario
if($token) {
if($user){
$consult = Usuarios::where('correo', '=', $data['correo'])->get();
if (count($consult) == 0) {
$create = new Usuarios();
$create->nombre = $data['nombre'];
$create->correo = $data['correo'];
$create->contraseña = Hash::make($data['contraseña']);
$create->empresa = $data['empresa'];
$create->telefono = $data['telefono'];
$create->rol = $data['rol'];
$create->save();
$array = array(
"id" => $create->id,
"nombre" => $create->nombre,
"correo" => $create->correo,
"contraseña" => $create->contraseña,
"empresa" => $create->empresa,
"telefono" => $create->telefono,
"rol" => $create->rol
);
return response()->json($array, 201);
} else {
return response()->json(['error' => 'el correo ya existe'], 401, []);
} }else{
return response()->json(['error' => 'token equivocado'], 401, []);
}
} else{
return response()->json(['error' => 'Unauthorized'], 401, []);
} }
Ejemplo en postman:
1.- iniciamos sesión tomamos el token generado, entramos al Resquest de create y en los headers pegamos el token
2.- vamos al apartado body e insertamos un nuevo usuario, si el token es correcto entonces procederá a crearlo de lo contrario no se hará ese inserción