본문 바로가기

verdantjuly/Today I Learned

TIL 20240113

728x90

이번 주 목표

-

오늘 목표

resmemory

  1. Kakao Config 백에서 받아오게
  2. 내가   API

오늘 한 것

kakaoJSkey 백에서 받아오게

내가   API

오늘 스케줄

6:00 기상, 아침 식사, 샤워

6:30 커리어톤 - 최종체크

7:00 자유

12:00 점심식사, 휴식

13:00 resmemory 개발

18:00 산책

19:00 저녁 식사, 휴식

20:00 java 학습

24:00 취침

1. Kakao Config 백에서 받아오게

      // 카카오 JS key
      if (pathname == '/kakaokey') {
        responseData = {
          kakaoJSkey: process.env.KAKAO_JS_KEY,
          grantType: process.env.KAKAO_GRANT_TYPE,
          kakaoClientId: process.env.KAKAO_CLIENT_ID,
          kakaoSecretKey: process.env.KAKAO_CLIENT_SECRET,
          kakaoRedirectURI: process.env.KAKAO_REDIRECT_URI,
        };
      }

 

async function kakaoLogin() {
  try {
    const response = await fetch(`./api/kakaokey`, {
      method: 'POST',
    });
    const result = await response.json();
    await Kakao.init(result.responseData.kakaoJSkey);
    await Kakao.Auth.authorize({
      redirectUri: result.responseData.kakaoRedirectURI,
    });
  } catch (err) {
    alert('로그인이 정상적으로 완료되지 않았습니다. 새로고침 이후 다시 시도해 주세요.');
  }
}

 

async function oauth() {
  const urlParams = new URL(location.href).searchParams;
  const code = urlParams.get('code');
  const responseConfig = await fetch(`./kakaokey`, {
    method: 'POST',
  });
  const resultConfig = await responseConfig.json();
  const config = {
    client_id: resultConfig.responseData.kakaoClientId,
    client_secret: resultConfig.responseData.kakaoSecretKey,
    grant_type: resultConfig.responseData.grantType,
    redirect_uri: resultConfig.responseData.kakaoRedirectURI,
    code: code,
  };

  const baseUrl = 'https://kauth.kakao.com/oauth/token';

  const params = new URLSearchParams(config).toString();
  const finalUrl = `${baseUrl}?${params}`;

  const responseToken = await fetch(finalUrl, {
    method: 'POST',
    headers: {
      'Content-type': 'application/json',
    },
  });
  const resultToken = await responseToken.json();
  const accessToken = resultToken.access_token;

  const userDataResponse = await fetch('https://kapi.kakao.com/v2/user/me', {
    headers: {
      Authorization: `Bearer ${accessToken}`,
      'Content-type': 'application/json',
    },
  });
  const userDataResult = await userDataResponse.json();
  const authId = userDataResult.id;

  await fetch(`./oauth`, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({ kakaoId: authId }),
  });

  const response = await fetch(`./kakaoLogin`, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({ kakaoId: authId }),
  });
  const result = await response.json();

  if (result.responseData.code == 121 || result.responseData.code == 123) {
    sessionStorage.setItem('Authorization', response.headers.get('Authorization'));

    alert(
      '로그인을 환영합니다! 최초로 카카오 로그인을 진행할 경우 랜덤 닉네임이 부여됩니다! 닉네임은 로그인 이후 마이페이지에서 수정할 수 있습니다.',
    );
  } else {
    alert(code[result.responseData.code]);
  }

  location.href = '../';
}

 

2. 내가 쓴 글 조회

      // 내가 쓴 글 조회
      if (pathname === '/myposts') {
        try {
          const { userId } = params;
          const result = await Posts.findAll({
            where: { userId },
            order: [['createdAt', 'DESC']],
            raw: true,
          });
          responseData = { result };
        } catch (err) {
          responseData = { code: 340 };
        }
      }

 

3. 자바에서 나누기는 /

4. Calculator Class

public class Calculator {
    public int subtract(int num1, int num2) {
        int total;
        total = num1 - num2;
        return total;
    }
}

 

5. option + shift + F : vscode 자동 정렬

6. 자바에서 클래스 : 객체를 정의하기 위한 틀

7. 자바에서 메소드 : 특정 작업을 수행하기 위한 명령문의 집합 (행동)

8. Chapter 01 Programming 완료


정리 

중요 정보는 백에서 받아오기. 클라이언트 노출 X

 

 

 

KPT

Keep

열심히 하는 것, 나태를 극복하고 예전 페이스를 되찾은 것

Problem

밖에 나가지 않는 것

Try

가끔은 밖에도 나가면서 코딩하기 

소감

열심히 개발하고 있다.

 

 

 

'verdantjuly > Today I Learned' 카테고리의 다른 글

TIL 20240116  (0) 2024.01.16
TIL 20240115  (0) 2024.01.15
TIL 20240111  (2) 2024.01.11
TIL 20240110  (0) 2024.01.10
TIL 20240109  (0) 2024.01.09