Flask-Naver
๋ค์ด๋ฒ ์์ด๋๋ก ๋ก๊ทธ์ธ์ ์ํ ํ๋ผ์คํฌ ํ์ฅ๊ธฐ๋ฅ์ ๋๋ค.
Installation
pip install flask-naver
Usage
๋จผ์ ์ฑ์ ์ค์ ์ ๋ค์๊ณผ ๊ฐ์ ๊ฐ์ด ๋ค์ด์์ด์ผ ํฉ๋๋ค.
app.config['NAVER_CLIENT_ID'] = ""
app.config['NAVER_CLIENT_SECRET'] = ""
app.config['NAVER_CALLBACK'] = ''
CLIENT_ID์ CLIENT_SECRET์ ๋ค์ด๋ฒ ๊ฐ๋ฐ์์ผํฐ์์ ๋ฐ๊ธ๋ฐ์์ ์ ๋ ฅํฉ๋๋ค.
๋ํ ์ฑ์ url์ ๋ฏธ๋ฆฌ ๋ค์ด๋ฒ ๊ฐ๋ฐ์์ผํฐ์ ์ ๋ ฅํด์ผ ํฉ๋๋ค.
CALLBACK์ ๋ค์๋ก๋ฅผ ์ด์ฉํ์ ๋ ๋ก๊ทธ์ธ ์ ๋ณด๋ฅผ ์ฒ๋ฆฌํ ์ปจํธ๋กค๋ฌ์ url์ ์ ๋ ฅํฉ๋๋ค. ์ด๋ ํ๋กํ ์ฝ๊ณผ ๋๋ฉ์ธ์ ์ ์ธํ url๋ง ์ ๋ ฅํ๋ฉด ๋ฉ๋๋ค.
from flask import Flask
from naver_login import flask_naver
app = Flask(__name__)
naver = flask_naver(app)
...
@app.route('/login/naver')
def login():
...
if not logged_in:
naver.login()
@app.route('/callback')
def callback():
if(request.args is not None):
auth = naver.getAuth(request.args)
if(type(auth) == dict):
session['auth_token'] = auth.get('access_token')
session['refresh_token'] = auth.get('refresh_token')
session['token_type'] = auth.get('token_type')
session['userInfo'] = dumps(naver.getUserInfo(session.get('token_type'), session.get('auth_token')))
session['hashed'] = dumps(naver.getUserUnique(session.get('token_type'), session.get('auth_token')))
session['isLogged'] = True
return redirect(url_for('index'))
else:
return auth
else:
raise ValueError