Estoy trabajando en un proyecto y quiero iniciar sesión en Stack Overflow mediante cURL.Iniciando sesión en Stack Overflow con cURL
Utilizo Google como mi proveedor de acceso abierto, lo que significa que necesito iniciar sesión en Google primero a través de su API.
Aquí está el código que tengo hasta ahora:
#!/bin/sh
. ./params.sh #the script with $username and $password
curl --silent https://www.google.com/accounts/ClientLogin \
-d Email=$username -d Passwd=$password \
-d accountType=GOOGLE \
-d source=localhost-test-1 \
-d service=lso \
-o tokens
. ./tokens
echo $Auth; #$Auth is correct here - I did not get a BadAuth error.
endpoint="https://www.google.com/accounts/o8/id";
curl http://stackoverflow.com/users/authenticate \
-d "openid_identifier=$endpoint" \
-w %{redirect_url}> ./google_url
google_url=$(cat ./google_url);
echo $google_url;
echo;
echo;
echo;
curl -L --silent --header "Authorization: GoogleLogin auth=$Auth" $google_url;
En este punto llego a una página de Google me dice que el desbordamiento de pila quiere información y tengo que entrar Según this page, la parte --header ... $Auth
. debe contar como inicio de sesión y redirigirme a Stack Overflow.
Aquí es la forma que tengo cuando ejecutar este script:
<form id="gaia_universallogin"
action="https://www.google.com/accounts/ServiceLoginAuth?service=lso" method="post">
<input type="hidden" name="continue" id="continue"
value="https://www.google.com/accounts/o8/ud?st=SOME_KEY" />
<input type="hidden" name="service" id="service"
value="lso" />
<input type="hidden" name="dsh" id="dsh"
value="SOME_NEG_NUMBER" />
</form>
Cuando intento la respuesta a continuación me sale el siguiente error:
Can't call method "attr" on an undefined value at - line 8.
curl: (3) <url> malformed
--></style>
aquí es la salida de google2.html
<form id="gaia_loginform"
action="https://www.google.com/accounts/ServiceLoginAuth?service=lso" method="post" >
<input type="hidden" name="continue" id="continue" value="https://www.google.com/accounts/o8/ud?st=RNADOM" />
<input type="hidden" name="service" id="service" value="lso" />
<input type="hidden" name="dsh" id="dsh" value="NEG_NUMEBER" />
<input type="hidden" name="GALX" value="ABCD" />
<input type="text" name="Email" id="Email" />
<input type="password" name="Passwd" id="Passwd" >
<input type="checkbox" name="PersistentCookie" id="PersistentCookie" value="yes"
<input type="hidden" name='rmShown' value="1" />
<input type="submit" class="gaia le button" name="signIn" id="signIn" />
<input type="hidden" name="asts" >
</form>
¿Ha intentado cambiar el UserAgent de curl? – ZyX
ZyX - ¿Por qué razón tengo el cambio de UA? En este punto, ni siquiera está iniciando sesión ni mucho menos dándome el código específico de UA. –
podría tener una característica de seguridad de no permitirle iniciar sesión con un agente de usuario de php ... –