Google-Oauth

김기태·2021년 10월 22일
0

프런트

<script src="https://apis.google.com/js/platform.js" async defer></script>

<meta name="google-signin-client_id" content="YOUR_CLIENT_ID.apps.googleusercontent.com">

<div class="g-signin2" data-onsuccess="onSignIn"></div>

function onSignIn(googleUser) {
var id_token = googleUser.getAuthResponse().id_token;
var xhr = new XMLHttpRequest();
xhr.open('POST', 'https://yourbackend.example.com/tokensignin');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.onload = function() {
console.log('Signed in as: ' + xhr.responseText);
};
xhr.send('idtoken=' + id_token);
}

서버쪽
const { OAuth2Client } = require('google-auth-library');
const client = new OAuth2Client(
'Client-key값'
);
async function verify() {
const ticket = await client.verifyIdToken({
idToken: req.body.idtoken,
audience:
'Client-key값', // Specify the CLIENT_ID of the app that accesses the backend
// Or, if multiple clients access the backend:
//[CLIENT_ID_1, CLIENT_ID_2, CLIENT_ID_3]
});
const payload = ticket.getPayload();
const userid = payload['sub'];
// If request specified a G Suite domain:
// const domain = payload['hd'];
console.log(payload);
}

verify().catch(console.error);

profile
김개발

0개의 댓글