[Node.js] 로그인 만들기
·
개발/node.js
간단 암호화된 로그인 만들어 보기 JS // 모듈 express, fs, mysql // express열고, 데이터베이스 연결까지 // 데이터베이스 이름은 test8 // express에서 body객체 사용 const express = require("express"); const fs = require("fs"); const app = express(); const mysql = require("mysql2"); let client = mysql.createConnection({ user: "root", password: "kga22C3_05^", database: "test8", multipleStatements: true, }); const makeTable = "CREATE TABLE users ..
[Node.js] crypto, bcrypto
·
개발/node.js
1. 암호화 단방향 양방향 암호방식 단방향은 복호화해서 원래의 값을 알수 없고 양방향은 복호화해서 원래의 값을 알수 있다. 그렇기 때문에 단방향 복호화해서 원래의 비밀번호는 알수 없게 하고 복호화해서 암호를 해독한다. 네이버 페이지를 보면 비밀번호 찾기를 시도할때 비밀번호를 알려주지 않고 비밀번호 변경을 시켜준다. 2. 복호화 복호화는 암호문을 편문으로 변환하는 과정 부호화(인코딩)된 데이터를 부호화 되기전 형태로 바꿔서 사람이 읽을수 있는 형태로 되돌려 놓는것 3. 단방향의 비교 검증 방법 데이터 베이스에 저장된 암호화 로그인할때 입력받은 비밀번호를 단방향으로 암호화를 통해 비교하면 기본의 비밀번호는 저장되지 않고 암호화된 문자열로만 비교시킨다. 단방향 암호화는 해쉬 알고리즘을 사용해서 문자열을 고정된..
[Go] switch문
·
개발/Go
1. switch문 기본형태 switch 비굣값{ case 값1: 문장 case 값2: 문장 default: 문장 } 예제) package main import "fmt" func main(){ a:=3 switch a { case 1: fmt.Println("a == 1") case 2: fmt.Println("a ==2") case 3: fmt.Println("a ==3") default: fmt.Println("a>3") } } //a ==3 switch문을 사용하는경우 : if문으로 썼을때 조건이 복잡해 보이는 경우 편하게 하기 위함 if문과 switch문중 더 편한걸 선택해서 사용하면 된다. 2. switch 초기문 switch도 if문과 같이 초기문을 써줄수 있고 쓰는 방식도 같다. switc..
[Node.js] access token, refresh token 을 활용하여 로그인 유지시키기
·
개발/node.js
1. access token, refresh token 을 활용하여 로그인 유지시키기 // express, dotenv, fs, jsonwebtoken , express-session, mysql2 // 개발용으로 nodemon // 모듈 설치 //fs 모듈 가져오기 const fs = require("fs"); //express 모듈 가져오기 const express = require("express"); // .env파일을 사용하기 위해 가져오면서 설정 const dot = require("dotenv").config(); // jsonwebtoken 모듈 가져오기 const jwt = require("jsonwebtoken"); //express-session 모듈 가져오기 const session..
[Node.js] 로그인 Access Token, Refresh Token
·
개발/node.js
1. Access Token (1) 이용자가 로그인 시도 (2) 서버에서 이용자를 확인하고 입장권 (토큰)발급 하는데 JWT토큰 인증정보를 payload에 할당하고 생성 (3) 생성한 토큰을 클라이언트에 반환해주고 클라이언트가 이 토큰을 가지고 있는다. (4) 클라이언트에서 권한을 인증 요청할때 이 토큰을 같이 보낸다. (5) 서버는 토큰을 확인하고 payload의 인코딩되어 있는 값을 디코딩해서 사용자의 권한을 확인하고 (입장권이 맞는지) 데이터를 반환한다. (6) 만약에 토큰이 정상적인지 확인하고 (토큰이 썩었는지 입장권 시간이 지났는지) (7) 날짜가 지난 토큰이면 새로 로그인 시킨다. 토큰 재발급 2. Refresh Token Access token만 쓰면 인증보안에 취약할수 있고 다른사람이 악의..