Извлечение Python-запроса Google Users API в webapp2 возвращает None - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь использовать интерфейс на основе React для подключения к некоторым конечным точкам, размещенным в webapp2, используя Python и Google App Engine. Для начальной страницы аутентификации я использую API пользователей Google. По какой-то причине я могу выписать информацию о пользователе на свой локальный сервер разработки, но не могу получить ее, используя Fetch API Javascript, так как она возвращает None при попытке.

Я пытался записать пользователей в виде строк, но независимо от того, что они по-прежнему не возвращает ни одного.

Вот код Python:

def get(self):
        user = users.get_current_user()
        logout_url = users.create_logout_url('/')
        login_url = users.create_login_url('/')
        if user:
            greeting = ('Welcome, %s! (<a href="%s">sign out</a>)' %
                (user.email(), logout_url))
        else:
            greeting = ('<a href="%s">Sign in or register</a>.' % login_url)

        if users.get_current_user():
            us = users.get_current_user().email()
            us = User.query(User.email == us).fetch()

            if us:
                pass
            else:
                us = User(
                    email= users.get_current_user().email(),
                    posts=[]
                )
                us.put()

        vars = {
            'data': user,
            'greeting': greeting
        }
        self.response.headers['Content-Type'] = 'application/json'
        self.response.headers.add_header('Access-Control-Allow-Origin', '*')
        self.response.headers.add_header('Access-Control-Allow-Headers', 'Content-Type')
        self.response.write(vars)

Когда я, например, получу доступ к http://localhost:8080, я получу ответ {'data': users.User(email='i@example.com',_user_id='14123123123'), 'greeting': 'Welcome, i@example.com! (sign out)'}.

Однако, когда я пытаюсь получить его,

const fatch = () => fetch('http://localhost:8080')
  .then(data => console.log(data.text()))
  .catch((error) => console.log(error))

Я получу ответ, в котором нет информации о пользователе:

{'data': None, 'greeting': '<a href="/_ah/login?co…3A//localhost%3A8080/">Sign in or register</a>.'}

Любая помощь будет принята с благодарностью. Спасибо!

...