728x90
반응형
채팅앱이다 보니 욕설이나 성희롱이 존재 한다
신고 당한 유저를 이용 못하게 만들자
나쁜사람.
비매너 신고를 받으면 접수를 받고
그 유저를 ben_table에 넣어 주도록 하였다
ben_useer_realid가 회원의 아이디이다
이 테이블에 존재하는 유저는 페이지 어디에 있더라도 알림과 함께 로그인 페이지로 가게 만들자
페이지가 render되기 전
componentWillMount() 안에 코드이다
let user_realid = JSON.parse(localStorage.getItem("user")).user_realid; // 로컬스토리지에서
console.log(user_realid); 유저의 아이디를 가져오자
const box2 = { //박스로 감싸기
user_realid: user_realid,
};
fetch("api/Ben", { //서버에 Ben 라우터를 찾아서 보내기
method: "post",
headers: {
"content-type": "application/json",
},
body: JSON.stringify(box2),
})
.then((res) => res.json())
.then((json) => {
if (json.benTF === false) { //ben 테이블에 아이디가 존재하면 false를 받는다
console.log("입장불가능");
alert("신고가 접수 되어 이용이 불가합니다"); //알람 띄우기
window.location.replace("/"); //처음 화면으로 보내버리기
}
});
server페이지를 보자
router.post("/Ben", (req, res) => {
let realid = req.body.user_realid; //받아온 아이디 realid에 초기화
let sql = "SELECT * FROM ben_table WHERE ben_user_realid = (?)"; // ben_table서 realid와 일치하는것 가져오기
connection.query(sql, [realid], function (err, rows, result) {
let ben_TF = { // true, false 구분하기위한 객체
benTF: true,
};
if (err) {
console.log(err);
} else {
if (rows[0] != undefined) {
if (rows[0].ben_user_realid === undefined) { // 가져온 row가 undefined다?
res.send(ben_TF); == 벤테이블에 존재하지 않는다 true전송
} else {
ben_TF.benTF = false; // row에 뭔가 있다?
res.send(ben_TF); == 벤테이블에 있다 false전송
}
}
}
});
});
벤 당한 아이디로 로그인시도:
다음과 같은 알람이 뜨며
여기로 돌아가 진다
다른 url
/main
/all_message
/message_collect
다 적용해 줘서 접근이 안된다
-끗-
벤이 ben이 아니라 ban인지 방금 알았다
쓰는덴 이상 없다.
반응형
'Project 기록 > 와글와글(web)' 카테고리의 다른 글
[프로젝트]1:1 매칭 대상을 바꿔보자 (react,nodejs,express) (1) | 2020.10.01 |
---|---|
[프로젝트] setTimeout()을 사용해 버튼클릭에 제한을 두자(react) (0) | 2020.09.23 |
[프로젝트]텍스트 입력후 데이터베이스에 넣기(nodejs,react,mysql사용) (0) | 2020.09.20 |
[프로젝트]채팅앱기본 React에서 Socket.io를 사용해보자(node.js) (0) | 2020.09.18 |
[프로젝트]챗봇(chatbot)에 대해서, API종류 (0) | 2020.09.09 |