Jwt-decode를 사용하는 React용 새로운 Google Identity Services SDK를 사용하는 Google OAuth2
7579 단어 googleoauth2jwtreactprogramming
너는 필요할거야
Google Cloud 프로젝트 설정
Google 로그인을 React 앱에 통합하려면 Google 클라이언트 ID가 필요합니다. 먼저 Google Cloud 프로젝트를 만들어야 합니다.
개발할 앱에 가장 적합한 범위를 선택하고 애플리케이션 요구 사항에 따라 필요한 다른 모든 입력을 채웁니다.
Credentials - Create Credentials - OAuth 클라이언트 ID로 돌아갑니다. 웹 애플리케이션 유형을 선택하면 인증된 원본과 리디렉션 URL을 모두 제공할 수 있습니다.
Google 클라이언트 ID와 클라이언트 암호가 표시됩니다. 클라이언트 ID만 있으면 됩니다.
React 앱과 로그인 구성 요소를 만들어 봅시다
Google 클라이언트 ID가 있으면 Google 로그인을 통합하기 위한 React 애플리케이션을 만들기 시작합니다.
create-react-app 애플리케이션으로 시작하여 새로운 Google Identity Services SDK for React @react-oauth/google🚀를 사용하는 Google OAuth2와 jwt-decode는 JWT 토큰을 디코딩하는 데 도움이 되는 작은 브라우저 라이브러리인 필요한 모든 종속성을 추가합니다. Base64Url로 인코딩됩니다.
다음 명령을 실행하여 시작하되 React에서 Google 로그인을 인증하는 데 필요한 요구 사항이 있는지 확인하십시오.
npx create-react-app google-login
cd google-login
npm install @react-oauth/google jwt-decode react-router-dom
다음 내용으로 src/lib/GoogleLoginPage.js라는 파일을 만듭니다.
import React from 'react';
import { FcGoogle } from 'react-icons/fc';
import { GoogleOAuthProvider } from '@react-oauth/google';
import { GoogleLogin } from '@react-oauth/google';
const GoogleLoginPage = () => {
const responseGoogle = (response) => {
console.log(response);
}
return (
<div className="">
<div className="">
<GoogleOAuthProvider
clientId={`${process.env.REACT_APP_GOOGLE_API_TOKEN}`}
>
<GoogleLogin
render={(renderProps) => (
<button
type="button"
className=""
onClick={renderProps.onClick}
disabled={renderProps.disabled}
>
<FcGoogle className="" /> Sign in with google
</button>
)}
onSuccess={responseGoogle}
onFailure={responseGoogle}
cookiePolicy="single_host_origin"
/>
</GoogleOAuthProvider>
</div>
</div>
)
}
export default GoogleLoginPage
npm start를 실행하고 콘솔을 확인하여 jwt-decode를 사용하여 디코딩할 인코딩된 토큰을 받을 수 있습니다.
JWT-DECODE를 사용하여 Google 토큰 디코딩
이제 Google 응답 토큰을 얻었으므로 필요한 모든 사용자 정보를 얻기 위해 디코딩할 수 있습니다.
여전히 GoogleLoginPage.js에서 업데이트하겠습니다.
import React from 'react';
import { useNavigate } from 'react-router-dom';
import { FcGoogle } from 'react-icons/fc';
import { GoogleOAuthProvider } from '@react-oauth/google';
import { GoogleLogin } from '@react-oauth/google';
import { client } from '../client';
import jwt_decode from "jwt-decode";
const GoogleLoginPage = () => {
const navigate = useNavigate();
const responseGoogle = (response) => {
//console.log(response);
const userObject = jwt_decode(response.credential);
//console.log(userObject);
localStorage.setItem('user', JSON.stringify(userObject));
const { name, sub, picture } = userObject;
const doc = {
_id: sub,
_type: 'user',
userName: name,
image: picture,
};
client.createIfNotExists(doc).then(() => {
navigate('/', { replace: true });
});
}
return (
<div className="">
<div className="">
<GoogleOAuthProvider
clientId={`${process.env.REACT_APP_GOOGLE_API_TOKEN}`}
>
<GoogleLogin
render={(renderProps) => (
<button
type="button"
className=""
onClick={renderProps.onClick}
disabled={renderProps.disabled}
>
<FcGoogle className="" /> Sign in with google
</button>
)}
onSuccess={responseGoogle}
onFailure={responseGoogle}
cookiePolicy="single_host_origin"
/>
</GoogleOAuthProvider>
</div>
</div>
)
}
export default GoogleLoginPage
방금 수행한 작업을 분석해 보겠습니다.
responseGoogle()에서 Google 로그인 응답을 받은 후 jwt-decode 패키지를 가져오고 Google 로그인에서 받은 응답을 호출하여 디코딩된 토큰을 저장할 변수를 만들었습니다.
토큰이 해독되었으므로 이제 사용자 정보를 가져와서 localStorage에 저장하고 필요한 정보를 해체하여 데이터베이스로 보낼 수 있습니다.
Google OAuth 재구성
마지막으로 Google API에서 필요한 모든 승인된 JavaScript 원본 및 승인된 리디렉션 URI를 구성하는 것을 잊지 마십시오.
만세!!! 이제 완성된 애플리케이션을 보고 즐기고 테스트할 수 있습니다.
You can check out the live demo here
You can view and download our source code at
결론
이 튜토리얼에서는 새로운 Google Identity Services SDK for React @react-oauth/google🚀을 사용하고 JWT-DECODE로 토큰을 디코딩하여 Google OAuth2로 사용자를 인증하는 방법을 배웠습니다.
오늘 새로운 것을 배웠기를 바랍니다. 좋아요, 공유 및 댓글을 잊지 마세요.
참조
새로운 KGoogle Identity Services SD를 사용하는 Google OAuth2 for React@react-oauth/google🚀
Decoding JWTs token which are Base64Url encoded.
Reference
이 문제에 관하여(Jwt-decode를 사용하는 React용 새로운 Google Identity Services SDK를 사용하는 Google OAuth2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/oloriasabi/google-oauth2-using-the-new-google-identity-services-sdk-for-react-using-jwt-decode-2ioo텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)