Skip to content
Snippets Groups Projects
Commit c15d50c5 authored by Jennifer Lindgren's avatar Jennifer Lindgren
Browse files

Backend: Added sign out functionality

parent e0c433f9
Branches
No related tags found
No related merge requests found
...@@ -33,6 +33,10 @@ def generate_token(): ...@@ -33,6 +33,10 @@ def generate_token():
return generate_token() return generate_token()
return token return token
def get_token_from_request(request):
token_header = request.headers.get('Authorization')
return token_header[token_header.find('Bearer ') + 7:]
def generate_response(response, status, headers={}): def generate_response(response, status, headers={}):
response.status_code = status response.status_code = status
response.headers = {**{ response.headers = {**{
...@@ -158,5 +162,14 @@ def sign_in(): ...@@ -158,5 +162,14 @@ def sign_in():
'message': message 'message': message
}), status) }), status)
@app.route('/api/sign_out', methods=['GET'])
def sign_out():
token = get_token_from_request(request)
db.clear_token(token)
return generate_response(jsonify({
'success': True,
'message': 'Sign out successful!'
}), 200)
if __name__ == '__main__': if __name__ == '__main__':
app.run(debug=True) app.run(debug=True)
\ No newline at end of file
...@@ -31,7 +31,7 @@ class User(db.Model): ...@@ -31,7 +31,7 @@ class User(db.Model):
# User schema # User schema
class UserSchema(ma.Schema): class UserSchema(ma.Schema):
class Meta: class Meta:
fields = ('id', 'email', 'username', 'token') fields = ('id', 'email', 'username')
# Init user schema # Init user schema
user_schema = UserSchema(strict=True) user_schema = UserSchema(strict=True)
...@@ -97,4 +97,10 @@ def is_valid_username_password(username, password): ...@@ -97,4 +97,10 @@ def is_valid_username_password(username, password):
return password != None and password == valid_password return password != None and password == valid_password
def get_tokens(): def get_tokens():
return [user.token for user in User.query.all()] return [user.token for user in User.query.all()]
\ No newline at end of file
def clear_token(token):
user = User.query.filter_by(token=token).first()
user.token = None
db.session.commit()
return user
\ No newline at end of file
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment