basic JWT generation + rename gameid to game_id
This commit is contained in:
parent
4da6d75913
commit
361ade9abe
@ -3,6 +3,7 @@ import flask
|
|||||||
from truthseeker import routes_api
|
from truthseeker import routes_api
|
||||||
|
|
||||||
app = flask.Flask("truthseeker")
|
app = flask.Flask("truthseeker")
|
||||||
|
app.config["SECRET_KEY"] = "temporary secret"
|
||||||
|
|
||||||
app.register_blueprint(routes_api.api_routes, url_prefix="/api/v1")
|
app.register_blueprint(routes_api.api_routes, url_prefix="/api/v1")
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
import string
|
import string
|
||||||
import random
|
import random
|
||||||
|
import jwt
|
||||||
|
from datetime import datetime, timedelta
|
||||||
|
import truthseeker
|
||||||
|
|
||||||
# Map of all actively running games
|
# Map of all actively running games
|
||||||
# game_lists["game.id"]-> game info linked to that id
|
# game_lists["game.id"]-> game info linked to that id
|
||||||
@ -22,11 +24,23 @@ class GameInfo:
|
|||||||
"""
|
"""
|
||||||
The game info class stores all information linked to a active game
|
The game info class stores all information linked to a active game
|
||||||
|
|
||||||
Game.start_token : str,
|
GameInfo.id : str, the game identifier of the game
|
||||||
Game.id : str, the game identifier of the game
|
|
||||||
"""
|
"""
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.start_token = None
|
self.game_id = None
|
||||||
|
|
||||||
|
def gen_jwt(self, username, owner):
|
||||||
|
return jwt.encode(
|
||||||
|
payload={
|
||||||
|
"game_id": self.game_id,
|
||||||
|
"username": username,
|
||||||
|
"owner": owner,
|
||||||
|
"exp": datetime.utcnow() + timedelta(hours = 1) # handled automatically on jwt.decode
|
||||||
|
},
|
||||||
|
key=truthseeker.app.config["SECRET_KEY"],
|
||||||
|
algorithm="HS256"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def create_game():
|
def create_game():
|
||||||
"""
|
"""
|
||||||
@ -50,7 +64,7 @@ def get_game_info(game_id):
|
|||||||
|
|
||||||
: param game_id : the lenght of the random string
|
: param game_id : the lenght of the random string
|
||||||
: type game_id : str
|
: type game_id : str
|
||||||
: return : The GameInfo Object linked to the gameId
|
: return : The GameInfo Object linked to the game_id
|
||||||
: return type : GameInfo
|
: return type : GameInfo
|
||||||
"""
|
"""
|
||||||
if game_id in game_lists:
|
if game_id in game_lists:
|
||||||
|
|||||||
@ -6,25 +6,33 @@ api_routes = flask.Blueprint("api", __name__)
|
|||||||
|
|
||||||
@api_routes.route("/createGame")
|
@api_routes.route("/createGame")
|
||||||
def create_game():
|
def create_game():
|
||||||
|
username = flask.request.args.get("username")
|
||||||
|
if username==None:
|
||||||
|
response = {}
|
||||||
|
return {"status": "error, username not set"}
|
||||||
|
|
||||||
|
|
||||||
response = {}
|
response = {}
|
||||||
response["status"] = "ok"
|
response["status"] = "ok"
|
||||||
response["gameId"] = game_functions.create_game().id
|
game = game_functions.create_game()
|
||||||
|
response["game_id"] = game.id
|
||||||
|
response["jwt"] = game.gen_jwt(username=username, owner=True)
|
||||||
return response
|
return response
|
||||||
|
|
||||||
@api_routes.route("/getGameInfo")
|
@api_routes.route("/getGameInfo")
|
||||||
def get_game_info():
|
def get_game_info():
|
||||||
response = {}
|
response = {}
|
||||||
gameid = flask.request.args.get("gameid")
|
game_id = flask.request.args.get("game_id")
|
||||||
if gameid == None:
|
if game_id == None:
|
||||||
response["status"] = "No 'gameid' argument"
|
response["status"] = "No 'game_id' argument"
|
||||||
return response
|
return response
|
||||||
game = game_functions.get_game_info(gameid)
|
game = game_functions.get_game_info(game_id)
|
||||||
if game == None:
|
if game == None:
|
||||||
response["status"] = "Game {} does not exist".format(gameid)
|
response["status"] = "Game {} does not exist".format(game_id)
|
||||||
return response
|
return response
|
||||||
else:
|
else:
|
||||||
response["status"] = "ok"
|
response["status"] = "ok"
|
||||||
response["gameid"] = gameid
|
response["game_id"] = game_id
|
||||||
response["token"] = game.start_token
|
response["token"] = game.start_token
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user