일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 조건부스타일
- 서초구보건소 #무료CPR교육
- CustomHook
- 제어컴포넌트
- 부모패딩
- accordian
- vite
- ignore padding
- useQueryClient
- 부모요소의 패딩 무시
- 함수형프로그래밍
- 문제해결
- alias설정
- tailwindCSS
- QueryClient
- react
- debouncing
- es6
- DOM
- Carousel
- BlockFormattingContext
- 화살표2개
- ?? #null병합연산자
- ㅡ
- BFC
- createPortal
- 리액트
- twoarrow
- parent padding
- transition
Archives
- Today
- Total
프론트엔드 첫걸음
구글로그인 추가 본문
설치
npm install @react-oauth/google@latest
npm install jwt-decode
index.html
/*중략*/
<title>Sandwich</title>
<script src="https://accounts.google.com/gsi/client" async defer></script>
</head>
코드
function App() {
//구글 로그인
const [user, setUser] = useState({});
function handleCallbackResponse(response) {
console.log('Encoded JWT ID token : ' + response.credential);
var userObject = jwt_decode(response.credential);
console.log(userObject);
setUser((prev) => {
return { ...prev, userObject };
});
console.log(user);
document.getElementById('signInDiv').hidden = true;
}
function handleSignOut(event) {
setUser({});
document.getElementById('signInDiv').hidden = false;
}
useEffect(() => {
/* global google */
google.accounts.id.initialize({
client_id: process.env.REACT_APP_GOOGLE_CLIENT_ID,
callback: handleCallbackResponse,
});
google.accounts.id.renderButton(
document.getElementById('signInDiv'),
{
theme: 'outline',
size: 'large',
}
);
google.accounts.id.prompt();
}, [user]);
return (
<div>
<div id='signInDiv' />
</div>
)
}
[출처]
Google Identity Services Login with React (2022 React Google Login)
'개발 공부 > React' 카테고리의 다른 글
map으로 순회하는 component마다 ref 를 달 때 (0) | 2023.01.10 |
---|---|
리액트 절대경로 사용하기 (0) | 2023.01.05 |
성능개선 - useTransition, useDeferredValue (0) | 2022.09.29 |
성능개선 - lazy import (0) | 2022.09.28 |
리덕스 관련 코드 작성하기 2. Hooks 사용하여 컨테이너 컴포넌트 만들기 (0) | 2022.09.06 |