Exemple #1
0
def introspection():
    """
    The protected resource calls the introspection endpoint using an HTTP
    POST [RFC7231] request with parameters sent as
    "application/x-www-form-urlencoded
    :return:
    """
    token = request.form.get('access_token', None)
    client_id = request.form.get('client_id', None)
    client_secret = request.form.get('client_secret', None)

    if client_id is not None:

        _auth = Auth(client_id)

        if token is not None and _auth.verify_client_secret(client_secret):
            if _auth.verify_token(token) is True:
                _auth.person_id = _auth.decoded_token.get('person_id')
                _auth.client_id = _auth.decoded_token.get('client_id')
                _auth.melwin_id = _auth.decoded_token.get('melwin_id', 0)

                access_token = _auth.generate_access_token(expiry=JWT_INTITAL)
                refresh_token = _auth.generate_access_token(expiry=JWT_INTITAL)

                return json.dumps({
                    "access_token":
                    access_token,
                    "refresh_token":
                    refresh_token,
                    "token_type":
                    "bearer",
                    "expires_in":
                    _auth.decoded_token.get('exp', time.time()) - time.time(),
                    "issuer":
                    _auth.decoded_token.get('iss'),
                    "scope":
                    "read",
                    "person_id":
                    _auth.decoded_token.get('person_id'),
                    "melwin_id":
                    _auth.decoded_token.get('melwin_id', 0)
                }), 200

        return json.dumps({'error': 'access_denied'}), 401

    return json.dumps({'error': 'unsupported_response_type'}), 401
Exemple #2
0
def confluence_token():
    token = request.form.get('code', None)
    client_id = request.form.get('client_id', None)
    redirect_uri = request.form.get('redirect_uri', None)
    grant_type = request.form.get('grant_type', None)
    client_secret = request.form.get('client_secret', None)

    if grant_type == 'authorization_code':

        _auth = Auth(client_id)

        if token is not None and _auth.verify_client_secret(client_secret):
            if _auth.verify_token(token) is True:
                _auth.person_id = _auth.decoded_token.get('person_id')
                _auth.client_id = _auth.decoded_token.get('client_id')
                _auth.melwin_id = _auth.decoded_token.get('melwin_id', 0)

                access_token = _auth.generate_access_token(expiry=JWT_INTITAL)
                refresh_token = _auth.generate_access_token(expiry=JWT_INTITAL)

                return json.dumps({
                    "access_token":
                    access_token,
                    "token_type":
                    "bearer",
                    "expires_in":
                    _auth.decoded_token.get('iss'),
                    "refresh_token":
                    refresh_token,
                    "scope":
                    "read",
                    "person_id":
                    _auth.decoded_token.get('person_id')
                }), 200

        return json.dumps({'error': 'access_denied'}), 401

    return json.dumps({'error': 'unsupported_response_type'}), 401