Skip to content

Commit

Permalink
Attributes added to challenge response
Browse files Browse the repository at this point in the history
  • Loading branch information
Harry Kodden committed May 17, 2024
1 parent 34d4f15 commit 6f050fe
Showing 1 changed file with 19 additions and 8 deletions.
27 changes: 19 additions & 8 deletions server/api/pam_websso.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from datetime import timedelta

import qrcode
import base64
from flasgger import swag_from
from flask import Blueprint, request as current_request, current_app, session
from werkzeug.exceptions import NotFound, Forbidden, HTTPException
Expand Down Expand Up @@ -143,19 +144,29 @@ def start():
logger.debug(f"PamWebSSO user {user.uid if user else None} new session")
url = f"{current_app.app_config.base_url}/weblogin/{service.abbreviation}/{pam_sso_session.session_id}"

qr = qrcode.QRCode()
qr = qrcode.QRCode(border=0)
qr.add_data(url)

# ASCII QRCode
f = io.StringIO()
qr.print_ascii(out=f, invert=True)
f.seek(0)

qr_code = f.read()

return {"result": "OK",
"session_id": pam_sso_session.session_id,
"challenge": f"Please sign in to: {url}\n{qr_code}",
"cached": False}, 201
qr_code_ascii = f.read()

# Base64 PNG QRCode
png = io.BytesIO()
qr.make_image().save(png, format="PNG")
qr_code_png = base64.b64encode(png.getvalue()).decode()

return {
"result": "OK",
"cached": False,
"session_id": pam_sso_session.session_id,
"challenge": f"Please sign in to: {url}\n{qr_code_ascii}",
"url": f"{url}",
"qr_code_ascii": f"{qr_code_ascii}",
"qr_code_png": f"{qr_code_png}"
}, 201


@pam_websso_api.route("/check-pin", methods=["POST"], strict_slashes=False)
Expand Down

0 comments on commit 6f050fe

Please sign in to comment.