Exemplo n.º 1
0
def user_qrcode():
    try:
        validate(request.args, USER_QRCODE_SCHEMA)
    except ValidationError as e:
        return jsonify(error_message=str(e), error_code='INVALID_PARAMS'), 400

    auth_uri = auth.user_auth_uri(
        issuer=request.args['issuer'],
        username=request.args['username'],
        user_id=request.args['user_id'],
    )
    if not auth_uri:
        return 'User not found', 404

    return Response(qr_code_image_as_bytes(auth_uri), mimetype='image/png')
Exemplo n.º 2
0
def user_qrcode():
    try:
        validate(request.args, USER_QRCODE_SCHEMA)
    except ValidationError as e:
        return jsonify(error_message=str(e), error_code='INVALID_PARAMS'), 400

    auth_uri = auth.user_auth_uri(
        issuer=request.args['issuer'],
        username=request.args['username'],
        user_id=request.args['user_id'],
    )
    if not auth_uri:
        return 'User not found', 404

    return Response(qr_code_image_as_bytes(auth_uri), mimetype='image/png')
Exemplo n.º 3
0
def test_auth_uri():
    user_id = "15"
    user = auth.provision_user(user_id)

    auth_uri = urlparse(auth.user_auth_uri(user_id, "*****@*****.**", "someissuer"))

    assert auth_uri.scheme == "otpauth"
    assert auth_uri.netloc == "totp"
    assert auth_uri.path == "/someissuer:ausername%40example.org"

    query = parse_qs(auth_uri.query)
    assert query["algorithm"] == ["SHA256"]
    assert query["period"] == [str(user.key_valid_duration)]
    assert query["issuer"] == ["someissuer"]
    assert query["secret"] == [b32encode(user.secret).decode("ASCII")]
    assert query["digits"] == [str(user.key_length)]
Exemplo n.º 4
0
def test_auth_uri():
    user_id = '15'
    user = auth.provision_user(user_id)

    auth_uri = urlparse(
        auth.user_auth_uri(user_id, '*****@*****.**', 'someissuer'), )

    assert auth_uri.scheme == 'otpauth'
    assert auth_uri.netloc == 'totp'
    assert auth_uri.path == '/someissuer:ausername%40example.org'

    query = parse_qs(auth_uri.query)
    assert query['algorithm'] == ['SHA256']
    assert query['period'] == [str(user.key_valid_duration)]
    assert query['issuer'] == ['someissuer']
    assert query['secret'] == [b32encode(user.secret).decode('ASCII')]
    assert query['digits'] == [str(user.key_length)]