Meu Primeiro App com React Native - #17 Alteração de senha
07/09/2020Nessa videoaula trabalharemos com a screen de perfil dando o exemplo de alteração de senha do usuário pelo app.
Alterando a senha do usuário pelo App
views/arearestrita/Profile.js
A alteração de senha deixaremos na screen de profile do nosso app.
import React, {useState,useEffect} from 'react';
import {Text, View, TextInput, TouchableOpacity} from 'react-native';
import AsyncStorage from '@react-native-community/async-storage';
import {css} from '../../assets/css/Css';
import Icon from 'react-native-vector-icons/FontAwesome';
import MenuAreaRestrita from "../../assets/components/MenuAreaRestrita";
import config from "../../config/config";
export default function Profile({navigation}) {
const [idUser, setIdUser] = useState(null);
const [senhaAntiga, setSenhaAntiga] = useState(null);
const [novaSenha, setNovaSenha] = useState(null);
const [confNovaSenha, setConfNovaSenha] = useState(null);
const [msg, setMsg] = useState(null);
useEffect(()=>{
async function getIdUser()
{
let response=await AsyncStorage.getItem('userData');
let json=JSON.parse(response);
setIdUser(json.id);
}
getIdUser();
});
async function sendForm()
{
let response=await fetch(`${config.urlRoot}verifyPass`,{
method:'POST',
body:JSON.stringify({
id: idUser,
senhaAntiga: senhaAntiga,
novaSenha: novaSenha,
confNovaSenha: confNovaSenha
}),
headers:{
Accept: 'application/json',
'Content-Type': 'application/json'
}
});
let json=await response.json();
setMsg(json);
}
return (
<View style={[css.container, css.containerTop]}>
<MenuAreaRestrita title='Perfil' navigation={navigation} />
<View>
<Text>{msg}</Text>
<TextInput placeholder='Senha Antiga:' onChangeText={text=>setSenhaAntiga(text)} />
<TextInput placeholder='Nova Senha:' onChangeText={text=>setNovaSenha(text)} />
<TextInput placeholder='Confirmação da Nova Senha:' onChangeText={text=>setConfNovaSenha(text)} />
<TouchableOpacity onPress={()=>sendForm()}>
<Text>Trocar</Text>
</TouchableOpacity>
</View>
</View>
);
}
config/config.json
Uma questão sempre interessante é popular o nosso arquivo de configuração com dados que são utilizados várias vezes no nosso sistema, por exemplo a url base do nosso servidor. Para tanto vamos implementar isso no nosso arquivo config.js
"urlRoot": "http://192.168.0.102:3000/"
Controller.js
No Controller.js faremos a verificação da senha atual e alteração da nova senha no banco de dados.
app.post('/verifyPass',async (req,res)=>{
let response=await user.findOne({
where:{id:req.body.id, password: req.body.senhaAntiga}
});
if(response === null){
res.send(JSON.stringify('Senha antiga não confere'));
}else{
if(req.body. novaSenha === req.body.confNovaSenha){
response.password=req.body.novaSenha;
response.save();
res.send(JSON.stringify('Senha atualizada com sucesso!'));
}else{
res.send(JSON.stringify('Nova Senha e Confirmação não conferem!'));
}
}
});
Por hoje é só! Sucesso nos códigos e na vida!
Precisa de aulas particulares? webdesignemfoco@gmail.com
Posts Relacionados
Meu Primeiro App com React Native - #16 Menu e Componentização
Nessa videoaula criaremos um menu customizado na parte superior do nosso app, dando a opção do usuário deslogar do sistema.
Meu Primeiro App com React Native - #18 BackHandler
Nesse tutorial aprenderemos como manipular o comportamento do app quando o usuário acionar o botão de voltar do smartphone.