def callback(): client = WebApplicationClient(os.getenv("CLIENT_ID")) client.state = request.args.get('state') code = request.args.get('code') tokenurl, headers, body = client.prepare_token_request( 'https://github.com/login/oauth/access_token', state=client.state, code=code) secret = os.getenv('OAUTH_SECRET') clientid = os.getenv("CLIENT_ID") tokenresponse = requests.post(tokenurl, data=body, auth=(clientid, secret)) client.parse_request_body_response(tokenresponse.text) userinfo_endpoint = "https://api.github.com/user" uri, headers, body = client.add_token(userinfo_endpoint) userinfo_response = requests.get(uri, headers=headers, data=body) userinfo_json = userinfo_response.json() id = userinfo_json['id'] flask_login.login_user(load_user(id)) app.logger.info("user logged in Succesfully", extra={"user_id": flask_login.current_user.get_id()}) return redirect("/")
def unauthenticated(): client = WebApplicationClient(os.getenv("CLIENT_ID")) client.state = client.state_generator() authredirect = client.prepare_request_uri( "https://github.com/login/oauth/authorize", state=client.state) return redirect(authredirect)