OAuth GConnect KeyError: «имя» с Python на фляге в Ubuntu + apache на Amazon Lightsail

была борьба с OAuth с флягой.

Разместил приложение Python на фляге, оно работает на Amazon Lightsail с apache. Приложение работает, кроме Oauth.

Он столкнулся с проблемами в OAuth с Google Oauth. Приложение позволяет перенаправлять, и пользователю предоставляется кнопка входа в Google. Вводятся логин и пароль и заявка идет на редирект, но заводится там без редиректа.

Приложение работало в локальной среде разработки с авторизацией без проблем. Проблемы со средой Amazon Lightsail.

Журналы Apache

ERROR:flask.app:Exception on /gconnect [POST]
[Sat Jan 26 00:35:27.445588 2019] [wsgi:error] [pid 3644:tid 139961772205824] Traceback (most recent call last):
[Sat Jan 26 00:35:27.445647 2019] [wsgi:error] [pid 3644:tid 139961772205824]   File "/var/www/catalog/venv/lib/python2.7/site-packages/flask/app.py", line 2292, in wsgi_app
[Sat Jan 26 00:35:27.445699 2019] [wsgi:error] [pid 3644:tid 139961772205824]

--Итак спускаемся---- и достигаем---

KeyError: 'name'[Sat Jan 26 00:35:27.446205 2019] [wsgi:error] [pid 3644:tid 139961772205824] 

Фрагменты кода


фрагмент 1)

CLIENT_JSON_LOC = '/var/www/catalog/catalog/client_secrets.json'
print("Looking for cl sec json at :",CLIENT_JSON_LOC)

CLIENT_ID = json.loads(
open(CLIENT_JSON_LOC, 'r').read())['web']['client_id']
print("Client ID is :",CLIENT_ID)

фрагмент 2)

@app.route('/gconnect', methods=['POST'])
    def gconnect():

----------------

фрагмент 3)

login_session['access_token'] = credentials.access_token
    login_session['gplus_id'] = gplus_id

# Get user info
userinfo_url = "https://www.googleapis.com/oauth2/v1/userinfo"
params = {'access_token': credentials.access_token, 'alt': 'json'}
answer = requests.get(userinfo_url, params=params)

data = answer.json()

#print("Reached after getting user info, data is :",data)

login_session['username'] = data['name']
login_session['picture'] = data['picture']

Итак, в клиентском браузере начал проверять элементы и сообщает 500

[Error] [Report Only] Refused to execute a script because its hash, its nonce, or 'unsafe-inline' does not appear in the script-src directive of the Content Security Policy. (signin, line 0, x2)
[Error] Failed to load resource: Not allowed to follow a redirection while loading https://apis.google.com/u/0/_/cspreport (cspreport, line 0)
[Error] Failed to load resource: Not allowed to follow a redirection while loading https://apis.google.com/u/0/_/cspreport (cspreport, line 0)
[Error] Failed to load resource: the server responded with a status of 500 (INTERNAL SERVER ERROR) (gconnect, line 0)```

🤔 А знаете ли вы, что...
Flask поддерживает шаблонизацию Jinja2 для удобного создания динамических веб-страниц.


1
127
1

Ответ:

Решено

Я нашел ответ. Я заработал, написав код со всеми возможными исключениями для подключения и обратного вызова Google auth. Оказывается, Google время от времени меняет свою сферу деятельности! Было лучше закрыть этот вопрос, так как размещенное приложение отлично работает в Интернете в течение нескольких дней.