Node.js에서 Google API를 사용하는 OAuth 2.0
6906 단어 beginnersoauth20googleapisnode
서문으로, 저는 현재 내 베팅을 추적하기 위한 간단한 매치 베팅 추적기인 내 애플리케이션을 개발 중이며 앱에 OAuth 인증을 추가하기로 결정했습니다. 왜 안돼.
가장 먼저 한 일은 Google 콘솔에서 계정을 설정하고 OAuth 2.0에 대한 반짝이는 새 자격 증명(클라이언트 ID 및 클라이언트 암호)을 얻은 것입니다.
모든 토큰과 비밀 등을 포함한 인증 흐름을 이해하는 데 어려움을 겪었습니다. 그러나 깊이 파고들면 실제로는 매우 간단했으며 Google이 프로세스를 매우 간단하고 감히 우아하게 만드는 방법에 감사하기 시작했습니다.
내가 한 첫 번째 일은 Google API를 얻는 것입니다.
npm install googleapis
실제 프로그램에서:
API 라이브러리를 초기화하고 googleConfigs를 설정했습니다.
const { google } = require('googleapis');
const oauth2 = google.oauth2('v2');
const Oauth2Client = new google.auth.OAuth2(
process.env.GOOGLE_CLIENT_ID,
process.env.GOOGLE_CLIENT_SECRET,
process.env.GOOGLE_REDIRECT, // this must match your google api settings
);
그래서 기본적으로 다음 3가지만 하면 되었습니다.
1 단계:
function getConnectionUrl() {
return Oauth2Client.generateAuthUrl({
access_type: 'offline',
prompt: 'consent',
scope: defaultScope
});
}
//Call this function somewhere in the program to get URL:
//const url = getConnectionUrl();
2단계 및 3단계:
function getUserDetails(code) {
return Oauth2Client.getToken(code) //use code to get the token
.then(({ tokens }) => {
Oauth2Client.setCredentials(tokens); //add token to the Oauth credentials
})
.then(() => {
return oauth2.userinfo.get({ auth: Oauth2Client }); // get userinfo with the newly updated credentials
})
}
그래서 메인 프로그램에서 getConnectionUrl()을 사용하여 연결 URL을 얻었고 이 URL은 사용자 세부 정보를 얻기 위해 getUserDetails()에 전달한 URL의 코드를 제공했습니다.
이것이 내 애플리케이션에서 작동하는 OAuth 인증을 얻은 방법입니다.
읽어 주셔서 감사합니다. 피드백에 감사드립니다.
내 리포지토리를 확인하려면 다음 링크를 참조하세요.
당신이 그것을 좋아한다면 그것을 별표하십시오.
추신 트위터에서 저를 팔로우해주세요. 정말 감사하겠습니다.
*업데이트*
async-await 2단계와 3단계를 사용하면::로 줄일 수 있습니다.
function async getUserDetails(code) {
const {tokens} = await Oauth2Client.getToken(code);
Oauth2Client.setCredentials(tokens);
const usr_info = await oauth2.userinfo.get({auth: Oauth2Client});
return usr_info;
}
이것은 더 깨끗해 보이고 async await는 사용하기 더 직관적인 것 같습니다.
Reference
이 문제에 관하여(Node.js에서 Google API를 사용하는 OAuth 2.0), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/nipeshkc7/oauth-2-0-with-google-api-in-node-js-48m1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)