diff --git a/main.py b/main.py
index fff220a7f4ef941005782e950a6c3e919cb17de0..f233d7938a3e4725bb12d6e45d3de49a7e6fd440 100644
--- a/main.py
+++ b/main.py
@@ -8,7 +8,6 @@ import base64 #Used to encode the generated QR as base64, to directly insert it
 from requests import post, get #Used to validate recaptcha / oauth
 from io import BytesIO #Needed for base64 encoding of the image
 from PIL import Image #Needed for QR generation
-from flask_github import GitHub #github oauth library
 import json #used for github oauth
 from html import escape #This is used to escape characters, if they are send in the url
 app = Flask(__name__)
@@ -68,12 +67,11 @@ except:
     host="127.0.0.1"
 
 try:
-    app.config['GITHUB_CLIENT_ID'] = os.environ['GITHUB_CLIENT_ID']
-    app.config['GITHUB_CLIENT_SECRET'] = os.environ['GITHUB_CLIENT_SECRET']
+    GITHUB_CLIENT_ID = os.environ['GITHUB_CLIENT_ID']
+    GITHUB_CLIENT_SECRET = os.environ['GITHUB_CLIENT_SECRET']
 except:
     print("github client id or client secret is not set, please set these and run again.")
     exit()
-github = GitHub(app)
 
 try:
     if(os.environ["cookieNotice"] == 1):
@@ -219,23 +217,27 @@ def redirect_short_url(short_url):
 
 @app.route('/user/login')
 def login():
-    return github.authorize(scope="user") #redirect the user to the github login page and ask for access to user data (name, email, ...)
+    return redirect("https://github.com/login/oauth/authorize/?client_id=" + GITHUB_CLIENT_ID + "&scope=user") #redirect the user to the github login page and ask for access to user data (name, email, ...)
 
 @app.route('/user/github-callback') #Github redirects to this link after the user authenticated. Then we use the Token we get from github and request via the github api the username and the userid
-@github.authorized_handler
-def authorized(oauth_token):
-    if oauth_token is None:
-        return "oauth failed, please try again" #If you call this page manual you get this error
-    
-    headers = {'Authorization': 'token ' + oauth_token,} #Useragent doesn't matters, but is set here
-    githubResponse = get("https://api.github.com/user", headers=headers).text
-    userID = str(json.loads(githubResponse)['id'])
-    username = str(json.loads(githubResponse)['login'])
-
-    resp = make_response(redirect('/')) #redirect the user at the end back to the main page
-    resp.set_cookie('userID', userID) #set the cookies with username and userid
-    resp.set_cookie('username', username)
-    return resp
+def authorized():
+    try:
+        code = request.args.get("code")
+        url = "https://github.com/login/oauth/access_token" #The baseurl
+        params = {'client_id': GITHUB_CLIENT_ID, 'client_secret': GITHUB_CLIENT_SECRET, 'code': code} #As paramtere we send the client id and the client secret which we get from github when registering an application and the user code from before
+        oauth_token = post(url,params).text.split("access_token=")[1].split("&")[0] #Send a post request with the parameters from
+
+        headers = {'Authorization': 'token ' + oauth_token,} #Useragent doesn't matters, but is set here
+        githubResponse = get("https://api.github.com/user", headers=headers).text
+        userID = str(json.loads(githubResponse)['id'])
+        username = str(json.loads(githubResponse)['login'])
+
+        resp = make_response(redirect('/')) #redirect the user at the end back to the main page
+        resp.set_cookie('userID', userID) #set the cookies with username and userid
+        resp.set_cookie('username', username)
+        return resp
+    except:
+        return "Authentication failed"
     
 @app.route('/user/logout')
 def logout():