#Testing Refresh tokens!
from flask import Flask, jsonify, request
from flask_jwt_extended import JWTManager, jwt_required, create_access_token, jwt_refresh_token_required, create_refresh_token, get_jwt_identity

app = Flask(__name__)

app.config['JWT_SECRET_KEY'] = '#¤&v23vLSDG34dFJLSD{$€87$€{FLGL¤&L#Ö¤J&gL#¤J&L{$WS3sDGoLDML'
jwt = JWTManager(app)

@app.route('/login', methods=['POST'])
def login():
    pub_id = request.json.get('id')
    password = request.json.get('password')

    ret = {
        'access_token': create_access_token(identity=pub_id),
        'refresh_token': create_refresh_token(identity=pub_id) 
    }
    return jsonify(ret), 200

@app.route('/refresh', methods=['POST'])
@jwt_refresh_token_required
def refresh():
    current_user=get_jwt_identity()
    ret = {
        'access_token': create_access_token(identity=current_user)
    }
    return jsonify(ret), 200

@app.route('/protected', methods=['GET'])
@jwt_required
def protected():
    current_user=get_jwt_identity()
    return jsonify(logged_in_as=current_user), 200

if __name__ == '__main__':
    app.run()