wilson's story

Python3 + Flask + Google OAuth 본문

Python

Python3 + Flask + Google OAuth

wilson 2020. 5. 14. 16:45
반응형

google Oauth 를 이용하여 Flask 에서 로그인 처리를 하려 할 때 사용합니다

 

1. googleAPI 등록

우선 googleAPI에 등록이 되어있야한다

https://console.developers.google.com/apis에 접속한다 

좌측 메뉴에 OAuth 동의 화면으로 이동하여 신규 OAuth를 생성한다

개인적으로 내부 계정으로 사용할 예정이라 애플리케이션 유현은 내부로 설정

애플리케이션 이름은 편한 데로 작성

지원 이메일은 로그인한 계정이 작성되어있다

이대로 완료하면 OAuth 사용할 준비 완료 

 

좌측에 사용자 인증 정보 메뉴로 들어가면 신규일 경우 생성된 키가 아무것도 없을 것이다

사용자 인증 정보 만들기 를 눌러 OAuth 클라이언트 ID를 생성한다

 

 

애플리케이션 유형은 하고 자 하는 걸 만들면 된다 - 개인적으로 웹 애플리케이션을 만들기 때문에 선택한다

 

이름과 승인된 리디렉션 URL을 입력해준다

로컬에서 사용할 URL와 

http://127.0.0.1:5002/oauth2callback -> 콜백 경로

http://127.0.0.1:5002/oauth2authorize -> 로그인 경로 

외부망을 추가하고 싶다면 외부 IP 말고 DNS로 등록해줘야 한다 

 


2. Flask 설정

이제 google OAuth를 사용할 준비가 되었다 

이번에는 Flask를 설정해보자

 

Flask 연동을 위해서 우선 라이브러리를 설치한다

pip3 install oauth2client

가이드 링크는 flask_util module 

 

from oauth2client.contrib.flask_util import UserOAuth2

app = Flask(__name__)
app.config['SECRET_KEY'] = '임의텍스트'

# google API 의 사용자 인증 정보 페이지의 상세로 들어가면 상단에 JSON다운로드가 있다 해당 파일을 지정
app.config['GOOGLE_OAUTH2_CLIENT_SECRETS_FILE'] = 'client_secret_.json'

# 또는 해당값을 직접 넣을 수 있다
# app.config['GOOGLE_OAUTH2_CLIENT_ID'] = 'client-id'
# app.config['GOOGLE_OAUTH2_CLIENT_SECRET'] = 'client-secret'

이렇게 하고 구동시키면 http://127.0.0.1:5002/oauth2authorize URL로 접근하면 로그인 페이지가 뜨면 성공!!

에러가 났다면 친절하게 어떻게 하라는 설명이 뜬다. 설명 참조하여 수정해준다 -> 보통 에러가 뜨면 googleAPI에서 설정이 잘못된 것이다

 

 

# 로그인 여부 확인
@app.route('/test')
@oauth2.required
def test():
	if oauth2.has_credentials():
		print('login OK')
	else:
		print('login NO')
	return render_template('test.html')

http://127.0.0.1:5002/test 접근하면 로그인이 안되어있으면 로그인 페이지로 자동으로 이동되고 로그인이 되어있으면 test.html에 접근된다

 

 

나머지는 가이드 링크를 찾아보며 추가하겠습니다

반응형