전체 글

authentication MySQL 1 이전까지는 Users 배열을 이용했다면 이제는 Users 테이블을 데이터베이스에 직접 만들어서 사용하려 한다. 먼저 테이블은 아래의 SQL 구문을 이용해서 만든다. CREATE TABLE users ( id INT NOT NULL AUTO_INCREMENT , authId VARCHAR(50) NOT NULL , username VARCHAR(30), password VARCHAR(255), salt VARCHAR(255), displayName VARCHAR(50), email VARCHAR(50) NOT NULL , PRIMARY KEY (id), UNIQUE (authId) ) ENGINE = InnoDB; authentication MySQL 2 - Ses..
Federation authentication 1 : intro Passportjs - local방식 ❌ -> Facebook, Google, Kakao 같이 많은 사람들이 이미 회원가입되어 있는 기관의 정보를 사용해서 인증을 하는 방식. 사용자가 회원가입을 위해 복잡한 절차를 거치지 않아도 됨 사용자의 정보를 보관하는 것은 서비스를 제공하는 입장에서 부담스러운 일 -> 거대 자본을 가진.. 기업들에게 맡기고..^^ 해당 서비스에 종속되는 느낌이 드는 것이 단점. Federation authentication 2 : facebook https://www.passportjs.org/packages/passport-facebook/ passport-facebook Facebook authentication ..
Passportjs 1 : intro PassportJS 모듈 : 인증(Authentication)을 쉽게 구현할 수 있도록 도와주는 모듈 오늘 날은 인증의 방법이 다양 - 이미 다른 서비스에 가입된 정보를 이용해서 인증하는 방식이 많이 사용됨 -> Federation Authentication : ex) Login with Google -> 이렇게 다양한 인증 기관을 사용할 때 PassportJS 모듈을 사용하면 구현의 복잡도가 낮아짐. Passportjs 2 : configure https://www.passportjs.org/docs/ Facebook이나 Google같은 다른 기관에서 제공하는 인증을 사용하려면 Strategies에서 해당 기관에 맞는 모듈을 다운받아야 한다. passport-loc..
Security Password 1, 2 우리의 application이 갖고 있는 사용자의 비밀번호가 노출된다면 아주 심각한 문제 발생! db는 자체적인 보안시스템을 갖고 있지만, 보안상 취약점은 언제나 존재하기 때문에 암호화 필요. md5 : 현재는 X 단방향 암호화 방법: 원래의 문자 -> 암호화된 문자 가능 / 반대는 불가능한 경우. 지금은 평문 비밀번호가 저장되어 있음 -> 단방향 암호화를 시켜서 저장. > md5('111'); '698d51a19d8a121ce581499d7b701668' 사용자가 입력한 password도 암호화한 후 저장된 password와 비교. var md5 = require('md5'); //app.post('/auth/login') 내용수정 var user = { use..
session 1 - intro 웹 브라우저가 서버에 접속하면, 서버가 웹 브라우저에게 쿠키로 모든 정보를 저장. Save all. 가장 큰 문제점은 보안 이슈. -> 개선하기 위해 서버쪽에서 데이터를 저장하는 session.. 서버는 클라이언트에게 Save only id .. 접속한 사용자를 식별할 수 있는 값만 쿠키로 저장. real data는 서버에 저장. 보안상 더 좋고, 더 많은 정보를 저장할 수 있음. session 2 - counter 1, 2 connect.sid 값이 같다면 같은 사용자의 요청으로 간주. npm install express-session --save var session = require('express-session'); app.use(session({ secret: '..
cookie 1 – intro cookie 2 – counter https://expressjs.com/en/4x/api.html https://www.npmjs.com/package/cookie-parser var express = require('express'); var cookieParser = require('cookie-parser'); var app = express(); app.use(cookieParser()); app.get('/count', function(req, res){ if (req.cookies.count){ var count = parseInt(req.cookies.count); } else{ var count = 0; } count = count + 1; res.cooki..
저번 수업에서 파일을 이용해서 구현했던 웹페이지와 동일한 구조의 웹페이지를 구현했다. 거기에 edit과 delete 기능을 추가한 정도? 중간에 오류가 나서 한참을 헤맸는데.. jade 파일에 오타가 나서였다.... ㅋㅋㅋㅋㅋㅠㅠㅠ 이렇게 오류라고 안뜨는 게 정말 찾기 어려운 것 같다. 열심히 삽질했네..ㅎㅎㅎ conn.query 를 이용해서 sql 쿼리를 보내는 것은 모두 같았고, select 문의 결과가 배열로 전달되기 때문에 하나만 사용하려면(?) rows[0] 이렇게 jade 파일의 인자로 보내주어야 한다. (설명이 개같지만 아무튼 그렇다. 아리까리하면 console에 한 번 출력해보는 게 빠를 듯 하다.) var express = require('express'); var body..
MySQL 1 : 소개 3대 관계형 데이터베이스 중 하나. 웹의 발전과 함께 부상함. AMP ( Apache + MySQL, PHP ) MySQL과 호환되는 MariaDB, Aurora MySQL 3.1 : 구조 MySQL 설치는 이미 되어 있기 때문에 설치 부분은 넘겼다. MySLQ이 설치되어 있는지를 확인하려면 mysql -uroot -p 를 입력한 후, root 비밀번호를 입력해서 mysql 서버에 접속이 되는지 확인하면 된다. MySQL의 기본적인 단위는 table row == 행 == record column == 열 == attribute 같은 application에서 사용되는 table들의 묶음 == database MySQL 4 : MySQL 사용하기, MySQL 5 : UPDATE & D..
https://www.inflearn.com/course/node-js-database/dashboard [무료] Node.js 로 Database 다루기 소개와 웹애플리케이션 만들기 - 인프런 | 강의 서버측 자바스크립트 언어인 Nodejs 와 데이터베이스의 관계를 소개하고 NodeJs 와 데이터베이스를 통해 웹어플리케이션을 제작하는 방법을 알려줍니다., - 강의 소개 | 인프런... www.inflearn.com orientdb로 웹앱제작 1 : 소개 Why OrientDb? 라는 공식 홈페이지의 페이지를 따라가며, orientDB의 장점을 하나하나 설명해주었는데, 생소한 개념들도 많아서 당장 모두 이해하기는 어려울 것 같다. 그나저나 공식 홈페이지를 들어가니 해당 페이지는 삭제된 듯 하다... or..
· 오류😬
WSL2 에서 로컬호스트에 접속하는 방법은 공식 문서에 나와있다. https://docs.microsoft.com/en-us/windows/wsl/networking Accessing network applications with WSL Learn about the considerations for accessing network applications when using Windows Subsystem for Linux (WSL). docs.microsoft.com 내 윈도우 버전에서는 localhost: 로 접속하면 바로 접속이 되어야 하고, 저번에 실행했을 때는 접속이 아주 잘 되었는데 갑자기 접속이 안되는 것이다..😬 답은 실행중인 wsl를 종료하고 다시 시작하는 것이었다.. 윈도우 터미널에 ws..
호프
Untitled