django_telegram_login - oAuth telegram работает некорректно
Добавил в django авторизацию через telegram, используя django_telegram_login. Всё прикрутил, вроде работает. Авторизируюсь со своего номера - всё в порядке, аунтефикация проходит, как только дело доходит до других номеров - ошибка. Работать перестаёт, тестили на 4ех разных тг аккаунтах что не работают, выдаёт ошибку: NotTelegramDataError. Выводил логи, хеш моего аккаунта одинаков, а от других - разный.
def setTelegram(request):
user = Authorization(request)
if user:
try:
telegram_result = verify_telegram_authentication(bot_token=settings.TELEGRAM_BOT_TOKEN, request_data=request.GET)
except TelegramDataIsOutdatedError:
return HttpResponse("TelegramDataIsOutdatedError")
except NotTelegramDataError:
return HttpResponse("NotTelegramDataError")
User.objects.filter(id=user.id).update(telegram=telegram_result['id'])
return HttpResponse("ok")
return HttpResponse("error")
const url = new URL('https://oauth.telegram.org/auth');
for (const [key, value] of Object.entries({
bot_id: *******,
origin: 'https://***;'
})) url.searchParams.set(key, value)
const openParams = {
width: 550,
height: 470,
status: 0,
location: 0,
menubar: 0,
toolbar: 0
}
openParams.left = Math.max(0, (screen.width - openParams.width) / 2) + screen.availLeft
openParams.top = Math.max(0, (screen.height - openParams.height) / 2) + screen.availTop
window.open(url.href, 'ee_oauth_telegram', Object.entries(openParams).map(([k, v]) => `${k}=${v}`).join(','))
window.addEventListener('message', e => {
if (!e.origin || e.origin !== 'https://oauth.telegram.org') return
if (typeof e.data !== 'string') return
const data = JSON.parse(e.data);
if (data.event === 'auth_result') {
$.ajax({
url: '/api/telegram-set/',
method: 'get',
dataType: 'html',
data: `hash=${data.result.hash}&auth_date=${data.result.auth_date}&first_name=${data.result.first_name}&id=${data.result.id}&photo_url=${data.result.photo_url}&username=${data.result.username}`,
success: function (data) {
alert(data);
}
});
return;
}
});
}