Пытаюсь разобрать с аутентификацией через яндекс по
документации:
1) Создал приложение
в кабинете
2) Указал в настройках в поле REDIRECT URL = HTTPS_SITE/verification
Я так понимаю, что туда будут приходить ответы
3) Скачал кнопку "Войти через Яндекс" и на нее поставил ссылку "/yandex_sign_in":
4) В обработчике "/yandex_sign_in"
@app.route('/yandex_sign_in', methods=['GET'])
def yandex_sign_in(lang=''):
...
url = f'https://oauth.yandex.ru/authorize?response_type=token&client_id={client_id}&' \
f'redirect_uri={redirect_uri}&login_hint={login_hint}&scope={scope}&'\
f'force_confirm=yes&display=popup'
return redirect(url, code=302)
5) В обработчике "/verification" прописал:
@app.route('/verification', methods=['GET'])
def verification(lang=''):
try:
access_token = request.args.get('access_token')
expires_in = request.args.get('expires_in')
token_type = request.args.get('token_type')
state = request.args.get('state')
scope = request.args.get('scope')
return jsonify({'access_token': access_token,
'expires_in': expires_in,
'token_type': token_type,
'state': state,
'scope': scope
})
except:
error = request.args.get('error')
error_description = request.args.get('error_description')
return jsonify({'error': error,
'error_description': error_description,
})
--
В итоге, запускаю приложение --> жму кнопку "Войти через Яндекс" ---> и в итоге ошибка 404, что страница не найдена..
Что я не так сделал? Я же правильно понимаю, что должна была открыться форма заполнения логина и пароля, а потом яндекс должен дать ответ - есть такой или нет и если есть, то токен вернет. Но вопрос, как я "login_hint" ему должен передать, или получается что пользователь должен сначала форму заполнить, а потом нажимать вход через яндекс?
-
Просто в документации явно последовательность нарушена, либо я не туда смотрю. Может кто даст ссылку на пошаговую документацию? Или так вкратце подскажет что не так делаю?
---
UPD:
А если в браузере самому отправить ссылку с заполненными параметрами : "
https://oauth.yandex.ru/authorize?response_type=to......"
то браузер редиректит на указанную страницу и в ответе:
{"access_token":null,"expires_in":null,"scope":null,"state":null,"token_type":null}