Exemple #1
0
    def authorize_return(self):
        """Authorization code redirect endpoint.
        At this point the server verifies an OpenId and retrieves user's
        e-mail and full name from request

        The client may already use both the e-mail and the fullname in the
        templates, even though there was no token request so far.

        """

        # This will raise an exception if it's not valid
        openid_client.verify_openid(request)

        headers, body, code = SERVER.create_authorization_response(
            uri=request.url,
            http_method=request.method,
            body=request.body,
            scopes=request.params.get("scope"),
            headers=request.headers)

        response.headers = dict((str(k), str(v))
                                for k, v in six.iteritems(headers))
        response.status_code = code
        body = body or ''
        response.body = body.encode('utf-8')

        return response
Exemple #2
0
    def authorize_return(self):
        """Authorization code redirect endpoint.
        At this point the server verifies an OpenId and retrieves user's
        e-mail and full name from request

        The client may already use both the e-mail and the fullname in the
        templates, even though there was no token request so far.

        """

        # This will raise an exception if it's not valid
        openid_client.verify_openid(request)

        headers, body, code = SERVER.create_authorization_response(
            uri=request.url,
            http_method=request.method,
            body=request.body,
            scopes=request.params.get("scope"),
            headers=request.headers)

        response.headers = dict(
            (str(k), str(v)) for k, v in six.iteritems(headers))
        response.status_code = code
        body = body or ''
        response.body = body.encode('utf-8')

        return response
Exemple #3
0
    def _access_token_by_code(self):
        auth_code = request.params.get("code")
        code_info = auth_api.authorization_code_get(auth_code)
        headers, body, code = SERVER.create_token_response(
            uri=request.url,
            http_method=request.method,
            body=request.body,
            headers=request.headers)
        response.headers = dict(
            (str(k), str(v)) for k, v in six.iteritems(headers))
        response.status_code = code
        json_body = json.loads(body)

        # Update a body with user_id only if a response is 2xx
        if code / 100 == 2:
            json_body.update({'id_token': code_info.user_id})

        response.json = json_body
        return response
Exemple #4
0
    def _access_token_by_code(self):
        auth_code = request.params.get("code")
        code_info = auth_api.authorization_code_get(auth_code)
        headers, body, code = SERVER.create_token_response(
            uri=request.url,
            http_method=request.method,
            body=request.body,
            headers=request.headers)
        response.headers = dict((str(k), str(v))
                                for k, v in six.iteritems(headers))
        response.status_code = code
        json_body = json.loads(body)

        # Update a body with user_id only if a response is 2xx
        if code / 100 == 2:
            json_body.update({
                'id_token': code_info.user_id
            })

        response.json = json_body
        return response
Exemple #5
0
    def _access_token_by_refresh_token(self):
        refresh_token = request.params.get("refresh_token")
        refresh_token_info = \
            refresh_token_api.refresh_token_get_by_token(refresh_token)

        headers, body, code = SERVER.create_token_response(
            uri=request.url,
            http_method=request.method,
            body=request.body,
            headers=request.headers)
        response.headers = dict(
            (str(k), str(v)) for k, v in six.iteritems(headers))
        response.status_code = code
        json_body = json.loads(body)

        # Update a body with user_id only if a response is 2xx
        if code / 100 == 2:
            json_body.update({'id_token': refresh_token_info.user_id})

        response.json = json_body

        return response
Exemple #6
0
    def _access_token_by_refresh_token(self):
        refresh_token = request.params.get("refresh_token")
        refresh_token_info = \
            refresh_token_api.refresh_token_get_by_token(refresh_token)

        headers, body, code = SERVER.create_token_response(
            uri=request.url,
            http_method=request.method,
            body=request.body,
            headers=request.headers)
        response.headers = dict((str(k), str(v))
                                for k, v in six.iteritems(headers))
        response.status_code = code
        json_body = json.loads(body)

        # Update a body with user_id only if a response is 2xx
        if code / 100 == 2:
            json_body.update({
                'id_token': refresh_token_info.user_id
            })

        response.json = json_body

        return response