NEXT_LOGIN_INVALID_LOGIN_PARAMETER

Added by Anders over 4 years ago

Har fungerande konto både i test och prod för Next version 1.

Tänkte testa version 2, men inloggningen fungerar inte, utan får
[code] => NEXT_LOGIN_INVALID_LOGIN_PARAMETER
[message] => Something went wrong when logging in.

Jag använder samma konto och lösenord som för test version 1 (behöver jag skaffa ett nytt?), samma pem-fil (NEXTAPI_TEST_public.pem, är det fel?) och det enda jag gör olika är att jag ändrat 1 till 2 där api-versionen anges.

Vad är det som ändrats för inloggningen i v.2?


Replies (7)

RE: NEXT_LOGIN_INVALID_LOGIN_PARAMETER - Added by Lars over 4 years ago

Anger du timestamp (som du krypterar tillsammans med användardata) i sekunder eller millisekunder? Det ska vara millisekunder i v2. (I v1 står det millisekunder i dokumentationen men jag fick det bara att fungera i praktiken med sekunder, så om du har tagit fungerande v1-kod och bara ändrat url så kan det vara det det beror på.)

Lars

RE: NEXT_LOGIN_INVALID_LOGIN_PARAMETER - Added by Anders over 4 years ago

Nja, faktum är att i min fungerande inloggning i v1 så skickar jag mikrosekunder(!) nämligen funktionen microtime() i php:

$login_string = base64_encode($username) . ':' . base64_encode($password) . ':' . base64_encode(microtime());

Jag får samma inloggningsfel om jag ändrar detta till mikorsekunder:

$login_string = base64_encode($username) . ':' . base64_encode($password) . ':' . base64_encode(microtime() * 1000);

Fler idéer?

RE: NEXT_LOGIN_INVALID_LOGIN_PARAMETER - Added by Anders over 4 years ago

*mikorsekunder = millisekunder

RE: NEXT_LOGIN_INVALID_LOGIN_PARAMETER - Added by Lars over 4 years ago

microtime() * 1000 blir väl nanosekunder? Prova microtime() / 1000 i stället.

RE: NEXT_LOGIN_INVALID_LOGIN_PARAMETER - Added by Lars over 4 years ago

Med lite mer eftertanke så är jag mest förvirrad. Ur dokumentationen för microtime:

"By default, microtime() returns a string in the form "msec sec", where sec is the number of seconds since the Unix epoch (0:00:00 January 1,1970 GMT), and msec measures microseconds that have elapsed since sec and is also expressed in seconds.

If get_as_float is set to TRUE, then microtime() returns a float, which represents the current time in seconds since the Unix epoch accurate to the nearest microsecond."

För en liten stund sedan:

microtime(false) = "0.46569600 1418071228"
microtime(true) = 1418071228.4657

Vad är det du base64-encodar?

RE: NEXT_LOGIN_INVALID_LOGIN_PARAMETER - Added by Lars over 4 years ago

I version 2 (test):

microtime() ger mig samma felmeddelande som du får

1000 * time() fungerar bra

(1-7/7)