728x90
이번 주 목표
-
오늘 목표
resmemory
- Kakao Config 백에서 받아오게
- 내가 쓴 글 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 |