freehackquest / fhq-deprecated

"free-hack-quest" of "fhq" it is a web-engine for running CTF-challenges
MIT License
11 stars 11 forks source link

Не работает авторизация через API #119

Closed Nitive closed 9 years ago

Nitive commented 9 years ago
email = 'my_emal'
password = 'my_password'

import requests

res = requests.post('http://fhq.keva.su/api/security/login.php?email=' + email + '&password=' + password)
token = res.json()['data']['token']
res2 = requests.post('http://fhq.keva.su/api/games/choose.php?id=5&token=' + token)
print(res2.json())

# output:
{'result': 'fail', 'error': {'message': 'Error 1317: Please relogon', 'code': 1317}, 'data': []}
sea-kg commented 9 years ago

Да есть такое пока механизм сессий полностью не переделан на токены. Нужно вызвать http://fhq.keva.su/api/security/logoff.php

Best regards Evgenii Sopov https://www.facebook.com/eugene.sopov https://github.com/sea-kg/ other e-mails: sea-kg@ya.ru skype: sea-kg icq: 487767371

2015-05-16 16:35 GMT+06:00 Maxim notifications@github.com:

email = 'my_emal' password = 'my_password' import requests

res = requests.post('http://fhq.keva.su/api/security/login.php?email=' + email + '&password=' + password) token = res.json()['data']['token'] res2 = requests.post('http://fhq.keva.su/api/games/choose.php?id=5&token=' + token)print(res2.json())

output:

{'result': 'fail', 'error': {'message': 'Error 1317: Please relogon', 'code': 1317}, 'data': []}

— Reply to this email directly or view it on GitHub https://github.com/sea-kg/fhq/issues/119.

Nitive commented 9 years ago

Так не работает

email = 'my_emal'
password = 'my_password'

import requests

# get old token
oldToken = requests.post('http://fhq.keva.su/api/security/login.php?email=' + email + '&password=' + password).json()['data']['token']

# logout (logoff was not found)
requests.post('http://fhq.keva.su/api/security/logout.php&token=' + oldToken)

# get new token
token = requests.post('http://fhq.keva.su/api/security/login.php?email=' + email + '&password=' + password).json()['data']['token']

print(requests.post('http://fhq.keva.su/api/games/choose.php?id=5&token=' + token).json())

# output:
{'data': [], 'result': 'fail', 'error': {'code': 1317, 'message': 'Error 1317: Please relogon'}}
sea-kg commented 9 years ago

просто logoff вызови перед logon

Best regards Evgenii Sopov https://www.facebook.com/eugene.sopov https://github.com/sea-kg/ other e-mails: sea-kg@ya.ru skype: sea-kg icq: 487767371

2015-05-16 16:46 GMT+06:00 Maxim notifications@github.com:

Так не работает

email = 'my_emal' password = 'my_password' import requests

get old token

oldToken = requests.post('http://fhq.keva.su/api/security/login.php?email=' + email + '&password=' + password).json()['data']['token']

logout (logoff was not found)

requests.post('http://fhq.keva.su/api/security/logout.php&token=' + oldToken)

get new token

token = requests.post('http://fhq.keva.su/api/security/login.php?email=' + email + '&password=' + password).json()['data']['token']

print(requests.post('http://fhq.keva.su/api/games/choose.php?id=5&token=' + token).json())

output:

{'data': [], 'result': 'fail', 'error': {'code': 1317, 'message': 'Error 1317: Please relogon'}}

— Reply to this email directly or view it on GitHub https://github.com/sea-kg/fhq/issues/119#issuecomment-102607353.

Nitive commented 9 years ago

The requested URL /api/security/logoff.php was not found on this server.

sea-kg commented 9 years ago

Да конечно: api/security/logout.php

email = 'my_emal'
password = 'my_password'

import requests

# logout
requests.post('http://fhq.keva.su/api/security/logout.php')

# get new token
token = requests.post('http://fhq.keva.su/api/security/login.php?email=' + email + '&password=' + password).json()['data']['token']

print(requests.post('http://fhq.keva.su/api/games/choose.php?id=5&token=' + token).json())
Nitive commented 9 years ago

Все равно {'error': {'code': 1317, 'message': 'Error 1317: Please relogon'}, 'result': 'fail', 'data': []}

sea-kg commented 9 years ago

как работает на js

var fhq = new FHQFrontEndLib();
fhq.client = "web-fhq2014";
fhq.baseUrl = fhq.getCurrentApiPath(); // or another path

if (fhq.token && fhq.token != "")  // todo 
    fhq.security.logout();

function login() {
    var obj = fhq.security.login(this.email.value,this.password.value);
    if (obj.result == "fail") {
        this.error_message.innerHTML = "<b>" + obj.error.message + "</b>";
        this.info_message.innerHTML = "";
    } else {
        window.location.href = "main.php";
    }   
}
sea-kg commented 9 years ago

и попробуй без токенов работать.

sea-kg commented 9 years ago

кажется знаю в чем проблема. Вечером поправлю.

Nitive commented 9 years ago

Забыл, что есть front-end lib, попробую через нее

sea-kg commented 9 years ago

))))) static function userid() { // TODO $FHQSESSION $userid = (APISecurity::isLogged() && isset($_SESSION['user']['id'])) ? $_SESSION['user']['id'] : ''; if (intval($userid) == 0) { session_destroy(); APIHelpers::showerror(1317, 'Please relogon'); } return $userid; }

sea-kg commented 9 years ago

без полноценного тестирования плохо (((

Nitive commented 9 years ago

Не работает не первый скрипт, не с logout

sea-kg commented 9 years ago

тогда вечером начну писать либу на питоне что бы тестить апи( 17 мая 2015 г. 15:41 пользователь "Maxim" notifications@github.com написал:

Не работает не первый скрипт, не с logout

— Reply to this email directly or view it on GitHub https://github.com/sea-kg/fhq/issues/119#issuecomment-102773452.

Nitive commented 9 years ago

Дошло, что данные в post запрос передаю как в get Исправил, но все равно не помогло

import requests

# get new token
token = requests.post('http://fhq.keva.su/api/security/login.php', {'email': email, 'password': password}).json()['data']['token']
print(token) # token is correct
print(requests.post('http://fhq.keva.su/api/games/choose.php', {'token': token, 'id': 5}).json())
sea-kg commented 9 years ago

я исправляю сейчас еще ((( там бардак полный мне нужно время + начал писать test.py для бекэнда. могу подготовить виртуалку с девелоп версией. надо? или подождешь пока исправлю все?

Nitive commented 9 years ago

Подожду