예제 #1
0
    def unauthenticated_userid(self, request):
        validator = RequestValidator(request)

        token_generator = generate_token
        server = BackendApplicationServer(validator, token_generator)

        # bw compat
        token = request.environ.get(self.environ_key)
        if token is not None:
            request.authorization = 'Bearer %s' % token

        try:
            valid, r = server.verify_request(
                request.url,
                request.method,
                None,
                request.headers,
                ['annotations'],
            )
        except:
            valid = False

        if valid:
            return r.user

        # bw compat
        personas = request.session.get('personas', [])
        if len(personas):
            return personas[0]

        return None