Token 만들기 개발 중인 게임에 필요한 Token을 제작하는 과정 원하는 3D 에셋은 다음과 같은 모양이다. 모델링 모델링은 크게 2가지만 하면 된다. token의 밑부분인 동전과 같은 부분 token의 위에 올라가는 광석 부분 동전 부분 cylinder를 이용하여 만드는 방법과 원으로부터 만들 수 있다. 이번에는 원에서 시작하겠다. 원을 생성한다. Tab을 눌러 edit mode로 변경한다. F를 눌러 표면을 생성한다. 그다음은 만들어진 원을 이용하여 입체적인 물체를 만들면 된다. E를 눌러 높이를 만들어 준다. I를 눌러 안쪽으로 추가적인 점을 생성한다. 다시 E를 눌러 안쪽의 높이를 낮춘다. 광석 부분 IcoSphere를 이용하면 광석과 같은 모양을 쉽게 만들 수 있다. IcoSphere의 Su..
Token
로그아웃 회원가입과 로그인 기능은 이미 만들었다. 이제 로그아웃 기능을 만들어 보자. 로그인된 유저가 로그아웃을 원한다면 유저의 아이디를 찾아 token을 지워주면 된다. token을 지운다면 clinet가 갖고 있던 token과 일치하는 유저를 찾을 수 없기 때문에 token만 지워도 로그아웃이 된다. 로그아웃 라우터를 우선 만들자. app.get('/api/users/logout', auth, (req, res) => { User.findOneAndUpdate({_id: req.user._id}, {token: ""}, (err, user) => { if(err) return res.json({success: false, err}) return res.status(200).send({ success:..
Auth 기능 어떤 페이지에 로그인된 유저만 사용 가능하게 만들어야 하는 기능이 필요하다. 따라서 로그인하여 Token이 발급된 유저만 사용 가능하게끔 만드는 Auth기능을 만들어야 한다. Cookie에 저장된 token을 decode 우선 auth를 위한 middleware가 필요하니 middleware 폴더를 root에 만든 뒤, auth.js파일을 생성하여 다음과 같이 작성한다. const { User } = require("../models/User"); let auth = (req, res, next) => { //인증 처리 //client cookie token 가져오기 let token = req.cookies.x_auth; //토큰 복호화 & user 찾기 User.findByToken(t..
로그인 기능 만들기 우선 로그인을 하려면 요청된 이메일이 데이터베이스에 있는지 찾아야 한다. 그다음 요청된 비밀번호와 같은지 여부를 판단한다. 만약 둘 다 일치한다면 Token을 생성하면 된다. 이메일 확인하기 우선 엔드포인트는 './login'으로 하고 post 메서드를 하나 추가한다. 그 후 몽고DB 메서드인 findOne 메서드를 사용하여 일치하는 email을 찾는다. 만약 존재하지 않는다면 실패 메시지를 전달한다. 일치하는 email이 있다면 비밀번호를 비교한다. app.post('/login', (req, res) => { //요청된 이메일을 DB에서 찾는다 User.findOne({ email: req.body.email }, (err, user)=> { if(!user){ return res..