1022 TIL 인증/보안 (3) Oauth2

전통적으로 직접 작성한 서버에서 인증을 처리해주는 것과는 달리, OAuth는 인증을 중개해주는 메커니즘이다. 보안된 리소스에 액세스하기 위해 클라이언트에게 권한을 제공하는 프로세스를 단순화하는 프로토콜입니다.
즉, 이미 사용자 정보를 가지고 있는 웹 서비스(GitHub, google, facebook 등)에서 사용자의 인증을 대신해주고, 접근 권한에 대한 토큰을 발급한 후, 이를 이용해 내 서버에서 인증이 가능해진다.

axios 응답 schema

{
  // `data` is the response that was provided by the server
  data: {},

  // `status` is the HTTP status code from the server response
  status: 200,

  // `statusText` is the HTTP status message from the server response
  statusText: 'OK',

  // `headers` the HTTP headers that the server responded with
  // All header names are lower cased and can be accessed using the bracket notation.
// `headers`는 서버에 전송 될 사용자 정의 헤더 입니다.
  // Example: `response.headers['content-type']`
  headers: {},

  // `config` is the config that was provided to `axios` for the request
  config: {},

  // `request` is the request that generated this response
  // It is the last ClientRequest instance in node.js (in redirects)
  // and an XMLHttpRequest instance in the browser
  request: {}
}

axios config option 차이

{'Content-Type': 'application/json'}
사용자가 클라이언트로서 서버에게 발송하는 데이터의 형식을 서버에게 알려주는 것이다.
요청에 페이로드가 없으면 Content-Type 헤더를 사용할 필요가 없다.

요청에 페이로드가 없는 경우에도 서버가 요청에 콘텐츠 유형을 제공하도록 요구할 수 있다. 이를 생략하면 서버가 415 지원되지 않는 미디어 유형 응답을 반환한다.

{headers: {'Accept' : "application/json"}}
사용자가 클라이언트로서 원하는 응답 데이터의 형식을 서버에 알려주는 것이다.

참고

axios 사용법
Oauth2
fetch와 axios 차이

config option 구글링

링크1
링크2

느낀점

3일간 인증,보안 스프린트를 진행하면서 생각보다 코드를 멀쩡히 짠것같은데 사소한 부분을 틀려서 test가 통과하지 못한 경험이 잦았다. env파일의 access_secret을 비워둬서 틀린적도 있었고, async만쓰고 await을 안적어서 틀린적도 있었다. 페어분도 import를 안하셔서 틀리곤 했다. 꼼꼼하고 차분하게 코드를 짜야겠다

좋은 웹페이지 즐겨찾기