added authentication API
This commit is contained in:
@@ -25,4 +25,7 @@ api_bp = Blueprint('api', __name__, url_prefix='/api')
|
||||
api_v1 = Api(api_bp, prefix="/v1", version='0.1', title='Vue Test API',
|
||||
description='The Vue Test API', doc='/v1/doc/', authorizations=api_authorizations, security='bearerAuth')
|
||||
|
||||
auth_api_bp = Blueprint('auth_api', __name__, url_prefix='/api/auth')
|
||||
|
||||
from .example_api import *
|
||||
from .auth_api import *
|
||||
|
||||
35
api/auth_api.py
Normal file
35
api/auth_api.py
Normal file
@@ -0,0 +1,35 @@
|
||||
# Copyright (c) 2019. Tobias Kurze
|
||||
import datetime
|
||||
import jwt
|
||||
from flask import request, jsonify, current_app
|
||||
from functools import wraps
|
||||
from random import randint
|
||||
|
||||
from backend import db
|
||||
from backend.api import auth_api_bp
|
||||
from backend.models.user_model import User
|
||||
|
||||
|
||||
@auth_api_bp.route('/register', methods=('POST',))
|
||||
def register():
|
||||
data = request.get_json()
|
||||
user = User(**data)
|
||||
db.session.add(user)
|
||||
db.session.commit()
|
||||
return jsonify(user.to_dict()), 201
|
||||
|
||||
|
||||
@auth_api_bp.route('/login', methods=('GET', 'POST',))
|
||||
def login():
|
||||
data = request.get_json()
|
||||
user = User.authenticate(**data)
|
||||
|
||||
if not user:
|
||||
return jsonify({ 'message': 'Invalid credentials', 'authenticated': False }), 401
|
||||
|
||||
token = jwt.encode({
|
||||
'sub': user.email,
|
||||
'iat':datetime.utcnow(),
|
||||
'exp': datetime.utcnow() + datetime.timedelta(minutes=30)},
|
||||
current_app.config['SECRET_KEY'])
|
||||
return jsonify({'token': token.decode('UTF-8')})
|
||||
@@ -1,9 +1,12 @@
|
||||
import datetime
|
||||
import ipaddress
|
||||
import json
|
||||
import logging
|
||||
from random import *
|
||||
from flask import jsonify, Blueprint
|
||||
from flask import jsonify, Blueprint, request
|
||||
from flask_restplus import Resource, reqparse
|
||||
|
||||
from backend import basic_auth, multi_auth
|
||||
from backend import basic_auth, multi_auth, db
|
||||
from backend.api import api_v1, api_bp
|
||||
|
||||
|
||||
@@ -59,7 +62,7 @@ class SensorData_Handler(Resource):
|
||||
print("values...")
|
||||
print(args['values'])
|
||||
values = json.loads(args['values'])
|
||||
wasss_app.logger.info("vals: " + str(values) + " (len: " + str(len(values)) + ")")
|
||||
app.logger.info("vals: " + str(values) + " (len: " + str(len(values)) + ")")
|
||||
|
||||
rough_geo_location = None
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user