Flask-naver

Oauth2 wraper for Naver login


License
BSD-3-Clause
Install
pip install Flask-naver==1.2

Documentation

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