Google Account Authentication in PHP

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bartx

Bartx

18/11/2009 17:00:00
Quote Anchor link
Hey allemaal,
Ik wil in mijn web app graag dat gebruikers kunnen inloggen met hun Google account. Googles "Federated Login" ( http://code.google.com/apis/accounts/docs/OpenID.html ) werkt met een redirect naar google of een popup maar dat wil ik niet. Ik heb deze class geprobeerd: http://www.andrewpeace.com/php-google-login-class.html (werkt met redirect). Omdat ik in de database natuurlijk gegevens aan de google gebruiker wil koppellen heb ik iets nodig dat permanent blijft (zoals username of een permanent ID) maar dat blijkt onmogelijk met de Federated Login.
Ook OAuth werkt met een redirect, hoewel dat al wel iets beter is als de OpenID methode...

Ik zoek dus een Class waarmee ik gebruikers kan laten inloggen met hun Google account (zonder redirect/popup), want ik denk dat het vast al een keer eerder is gemaakt :) Suggesties?
Alvast bedankt.
Gewijzigd op 01/01/1970 01:00:00 door Bartx
 
PHP hulp

PHP hulp

23/11/2024 15:59:13
 
Tamara

Tamara

18/11/2009 17:10:00
Quote Anchor link
heeft Google daar niet een API voor?
 
Bartx

Bartx

18/11/2009 17:12:00
Quote Anchor link
Jawel, maar ik zie er niet een die zonder redirects/popups werkt. Of mis ik iets?
 
Bartx

Bartx

18/11/2009 18:04:00
Quote Anchor link
Ik heb iets anders geprobeerd:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?
$c
= new cURL();
$post_data = array("accountType" => "HOSTED_OR_GOOGLE", "Email" => $_POST['wv_username'], "Passwd" => $_POST['wv_password'], "service" => "xapi", "source" => "Goog-Auth-1.0");
$h = $c->post("https://www.google.com/accounts/ClientLogin", $post_data);
var_dump($h);
?>

Geeft:
array(3) {
["code"]=>
int(403)
["cr"]=>
string(24) "Error=BadAuthentication
"
["ce"]=>
int(0)
}



Gelieve Niet Bumpen::
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de Afbeelding knop om je tekst aan te passen.

SanThe.
Gewijzigd op 01/01/1970 01:00:00 door Bartx
 
Klaasjan Boven

Klaasjan Boven

18/11/2009 19:55:00
Quote Anchor link
Ja?
 
Bartx

Bartx

18/11/2009 21:25:00
Quote Anchor link
Klaasjan Boven schreef op 18.11.2009 19:55:
Ja?

eeeeeh?
Ja, dat werkte dus niet...
Ik vond het hier: http://blog.saush.com/2009/04/25/third-party-user-authentication-with-ruby-in-a-just-few-lines-of-code/ en herschreven van Ruby naar PHP... maar werkt dus niet, maar waarom? :) ..

Edit:
volgens google krijg je het als je POST verkeerd format:
http://code.google.com/support/bin/answer.py?hl=en&answer=64263
ben nu wel benieuwd wat wel een goede format is dan..

Edit2:
Heb deze code gevonden, die ga ik nu proberen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$ch
= curl_init();

curl_setopt($ch, CURLOPT_URL, "https://www.google.com/accounts/ClientLogin");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$data = array('accountType' => 'GOOGLE',
          'Email' => '[email protected]',
          'Passwd' => 'yourpassword',
          'source'=>'PHI-cUrl-Example',
          'service'=>'lh2');
    
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$hasil = curl_exec($ch);

echo $hasil;
?>
Gewijzigd op 01/01/1970 01:00:00 door Bartx
 
Jelmer -

Jelmer -

18/11/2009 22:36:00
Quote Anchor link
Het idee achter OpenID en OAuth is juist dat mensen niet langer hun wachtwoord voor Google (of een andere aanbieder) hoeven in te voeren op een website van een onbetrouwbare derde. Vandaar de popup of redirect.

Bij OpenID is het openid zelf de constante. Dat is de gebruikersnaam van zo'n persoon, en die verandert niet. Bij OAuth krijg je als het goed is een soort code van de service, die geldig blijft zolang de gebruiker bij de service aangeeft dat hij niet ingetrokken hoeft te worden.

OpenID is vooral voor het inloggen. 1 keer inloggen op meerdere sites, omdat de openid-provider je niet bij iedere website gaat vragen om opnieuw je wachtwoord in te voeren, en voor je onthoudt of je ingelogd blijft op die site. Leuke is dat dit ook mooi in de browser geïntegreerd kan worden (Firefox deed het even als preview in Weave)

OAuth is meer gericht op applicaties en webapps die gebruik willen maken van userdata bij aanbieders zoals facebook en twitter. Je kan ermee aangeven dat een programma onder jouw naam dingen mag opvragen of plaatsen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.