분류 전체보기

728x90
반응형
·Node.js
이는 회원가입 관련하여 유효성 검사하면 많이 본 모듈이다. 나는 이걸 회원가입하면서 많이 쓰지 않았고 db에 모델 구축할 때 쓴 validate로 인하여 쓰게 되었다. express-validator 클라이언트가 서버에게 특정한 요청이나 리소스를 위해 바디로 보내는 데이터를 post 형식과 put형식등으로 보낼 때 요청이나 데이터들이 유효한지 확인하는 유효성 검사 모듈이다. 미들웨어 함수로도 사용할 수 있고, API 형태로 활용도 가능하다. validator.js를 활용해 편리하게 제작된 모듈이다. npm i --save express-validator 사용하기 전에 미리 설치해줘야 한다. 유효성 검사 방법 const { check, validationResult } = require("express-v..
·Node.js
const express = require("express"); const router = express.Router(); const cors = require("cors"); const passport = require("passport"); const KakaoStrategy = require("passport-kakao").Strategy; const models = require("../models"); const { isLoggedIn, isNotLoggedIn } = require("../middlwares/auth"); const path = require("path"); require("dotenv").config(); router.use(passport.initialize()); rout..
·Node.js
passport 개념 Node.js 를 위한 인증 미들웨어이며, Express 기반 웹에서 유용하게 사용할 수 있다. Passport는 이름 그대로 서비스를 사용할 수 있게끔 해주는 여권 같은 역할을 하는 모듈이다. 로그인을 쉽게 할 수 있게 도와준다. strategy 종류 (로그인 인증 방식) : Local Strategy(passport-local) : 로컬 DB에서 로그인 인증 방식 Social Authentication (passport-kakao, passport-twitter 등) : 소셜 네트워크 로그인 인증 방식 Passport 설치 내가 지금 구현하고자 하는 것은 local strategy로 DB에서 로그인 인증 방식을 구현할 것이다. passport-local : 직접 구현할 때 사용 ..
·Node.js
미들웨어는 양 쪽을 연결하여 데이터를 주고 받을 수 있도록 중간에서 매개 역할을 하는 소프트웨어, 네트워크를 통해서 연결된 여러 개의 컴퓨터에 있는 많은 프로세스들에게 어떤 서비스를 사용할 수 있도록 연결해 주는 소프트웨어를 말한다. express홈페이지에 가보면 미들웨어란 미들웨어함수는 요청 오브젝트(req), 응답 오브젝트 (res), 그리고 애플리케이션의 요청-응답 주기 중 그 다음의 미들웨어 함수 대한 액세스 권한을 갖는 함수라고 서술되어 있다. 그 다음의 미들웨어 함수는 일반적으로 next라는 이름의 변수로 표시한다고 한다. app.use() 를 통해서 미들웨어를 정의할 수 있다. 미들웨어는 본인의 함수가 끝나면 next()를 통해서 다음 함수를 호출해야 한다. 미들웨어의 특징 각 미들웨어에 정..
·Node.js
create 기능 구현하기 파일 분리를 위해 routes 폴더를 만들고 그 안에 register.js라는 파일을 만들어 넣는다. router.post('/', (req, res, next) => { models.Users.create({ email: req.body.email, // 사용자로부터 입력 받은 email name: req.body.name, // 사용자로부터 입력 받은 name }) .then((result) => { // 회원 가입 성공 시 res.send(result); }) .catch((err) => { // 회원 가입 실패 시 res.send(err); }); }); server.js에 라우터 사용을 위해 아래와 같은 코드를 작성해서 넣어준다. app.use('/register', ..
·Node.js
ORM(Object-Relational Mapping)은 객체지향 패러다임을 활용하여 관계형 데이터베이스(RDB)의 데이터를 조작하게 하는 기술이다. 이를 활용하면 쿼리를 작성하지 않고도 객체의 메서드를 활용하는 것처럼 쿼리 로직을 작성할 수 있다. Node.js의 대표적인 ORM인 Sequelize이 있다. Sequelize는 MySQL, PostgreSQL, MariaDB 등 많은 RDBMS를 지원하고 Promise 기반으로 구현되었기 때문에 비동기 로직을 편리하게 작성할 수 있다. Sequelize 설치 npm i sequelize sequelize-cli mysql2 sequelize : 시퀄라이즈 사용 sequelize-cli : 시퀄라이즈 명령어를 사용 mysql2 : MySQL과 연결해주는 ..
·React
비밀번호가지고 로그인 password : 로그인 인증할 때의 사용자가 입력한 비밀번호 userSalt : DB에 저장되어있는 사용자의 salt userPassword : DB에 저장되어있는 사용자의 암호화된 비밀번호(해시 값) 단방향 암호화이므로 복호화를 할 수 없다. 따라서 비밀번호 암호화했을 때의 비밀번호와 salt를 가지고 동일한 방법으로 암호화를 진행하여 나온 값과 비교한다. 이때 salt는 비밀번호를 생성했을 때의 값과 똑같은 값을 사용해야 한다. 그렇지 않으면 일치하지 않는다. 만약 일치한다면 true, 일치하지 않는다면 false를 반환하도록 한다. 최신 코드 export const verifyPassword = async (password, userSalt, userPassword) => ..
·React
단방향 암호화와 양방향 암호화 crypto는 단방향 암호화 방식이고, bcrypt는 양방향 암호화 방식이다. 단방향은 암호화할 수는 있어도 복호화해서 원래의 비밀번호를 알 수 없고, 양방향은 복호화해서 원래의 비밀번호를 알 수 있다. 그러나, Bcrypt는 Blowfish 알고리즘을 사용하기 때문에 해싱이 느리고 해싱에 엄청난 비용이 든다. 만약 해커가 브루트 포스같은 공격을 해대면 서버에 엄청난 부하가 가해진다. 암호화 복호화 단방향 가능 불가능 양방향 가능 가능 해시(hash) 해시(hash) : 해시 함수에 의해 얻어지는 값 해시 함수(hash function) : 해시 알고리즘(hash algorithm)이라고도 하며, 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수 키(key) : ..
728x90
반응형
Uheeking
'분류 전체보기' 카테고리의 글 목록 (26 Page)