Mam problemy z małą biblioteką OpenID o nazwie LightOpenID . Potrafię uwierzytelniać się u prawie wszystkich dostawców, ale nie wiem, jak pobrać dane od dostawcy. Dostaję tylko Array(), eaven z print_r().PHP: LightOpenID, jak pobrać dane konta od dostawcy?
Odpowiedz
Musisz zadzwonić pod numer getAttributes()
po$openid->validate()
wcześniej.
Pamiętaj:
Należy pamiętać, że to nie gwarantuje, że każdy z wymaganych parametrów/opcja będzie obecny
Zrobiłem to teraz: http://pastebin.com/ULsLvhxp Aby wyświetlić wiadomość e-mail, czy używam $ foo ['email']? – Pwntus
Będzie to '$ foo ['kontakt/email']' - zgodnie z dokumentami atrybuty są mapowane do formatu AX. – Pete
Również, '$ openid-> required = array ('contact/email');' musi być wywołane ** przed ** '$ openid-> validate()' – Pete
To jak go używać. To jest plik openid.php w folderze lightopenid. W klasie wprowadzić następujące dodatkowe funkcje -
class LightOpenID
{
public $returnUrl
, $required = array()
, $optional = array()
, $verify_peer = null
, $capath = null
, $cainfo = null;
// these are the variables which store the data about the user...
public function ret_fname() { return $this->data['openid_ext1_value_namePerson_first']; }
public function ret_lname() { return $this->data['openid_ext1_value_namePerson_last']; }
public function ret_email() { return $this->data['openid_ext1_value_contact_email']; }
public function ret_lang() { return $this->data['openid_ext1_value_pref_language']; }
}
teraz dokonać przykładowy login.php plików, które nazywa się kiedy chcesz uwierzytelnić. Nie może być kilka kopii tego pliku na różnych domenach uwierzytelniania itp
<?php
# Logging in with Google accounts requires setting special identity, so this example shows how to do it.
session_start();
require 'lightopenid/openid.php';
include_once('config.php'); // initial setting file
try {
$openid = new LightOpenID; // akshat - declared an object of class lightopenid.. this is listed in openid.php
if(!$openid->mode) {
if(isset($_GET['login'])) {
$openid->identity = 'https://www.google.com/accounts/o8/site-xrds?hd=YourDomain.in'; //this can be changed as you know...
$openid->required = array('namePerson/friendly', 'contact/email' , 'contact/country/home', 'namePerson/first', 'pref/language', 'namePerson/last'); // akshat - line added by me from after reading from the net....
header('Location: ' . $openid->authUrl());
}
?>
<script type="text/javascript" src="js/jquery-1.4.2.min.js" language="javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
document.form.submit();
});
</script>
<form name="form" action="?login" method="post"> </form>
<?php
} elseif($openid->mode == 'cancel') {
echo 'User has canceled authentication for Your Domain !';
} else { // FETCH USER INFO HERE
$fname = $openid->ret_fname(); // fetching user first name...
$lname = $openid->ret_lname(); // fetching user last name...
$email = $openid->ret_email(); // fetching user email...
$lang = $openid->ret_lang(); // fetching user language...
session_start();
// use it as required. I set them in session !
$_SESSION['admin']['emailID'] = $email; //put email id in session.
$_SESSION['admin']['fname'] = $fname; //put first name also in session.
$_SESSION['admin']['lname'] = $lname; //put last name also in session.
$rurl = $_SESSION['redirect']; // you can ignore this. Go to your own page now...
header("Location:$rurl"); // Go back to the calling application !
}
} catch(ErrorException $e) {
echo $e->getMessage();
}
?>
- 1. Jak pobrać identyfikator konta użytkownika Facebooka?
- 2. Dane dostawcy Firebase
- 3. AWS Powershell, aby pobrać numer konta AWS
- 4. Tworzenie dostawcy OpenID w PHP
- 5. Konfigurowanie dostawcy OAuth PHP
- 6. Dane konta aplikacji były nieprawidłowe
- 7. Czytanie kanału Atom konta Gmail od C#
- 8. Migracja z dala od dostawcy logowania społecznościowego
- 9. Jak pobrać stronę w php
- 10. Laravel rozszerzyć klasę dostawcy zainstalowaną od kompozytora
- 11. Jak pobrać wszystkie dane w jednym zapytaniu
- 12. Jak pobrać dane przez api w redux?
- 13. Jak pobrać dane z listy ze słownika
- 14. Jak pobrać dane wejściowe MIDI w C++?
- 15. Jak pobrać dane z DialogFragment do fragmentu?
- 16. Jak mogę pobrać dane z AsyncTasks doInBackground()?
- 17. Global.asax - Application_Error - Jak mogę pobrać dane strony?
- 18. Jak pobrać dane intraday giełdowe R
- 19. Jak pobrać dane aplikacji w Xcode 6
- 20. Jak pobrać e-mail z PHP
- 21. LightOpenID z nowym systemem OAuth2 Google
- 22. Jak pobrać plik z SFTP używając PHP?
- 23. Jak mogę pobrać ISP odwiedzającego przez PHP?
- 24. Ruby-OpenID: Wymagany adres e-mail od dostawcy OpenID
- 25. PHP PDO pobrać wszystkie tabele
- 26. pobrać dane z metatagów użyciu BeautifulSoup
- 27. Reactjs: Jak pobrać dane do załadowania przed zamontowaniem komponentu?
- 28. Jak przypisać role użytkownikowi podczas tworzenia konta
- 29. Jak pobrać dane z tablicy i wstawić do bazy
- 30. PHP Twitter API - Jak pobrać tweety wielu użytkowników?
Potrzebujemy więcej informacji na temat ... jak mówi nam dokładnie to, czego próbowałem (jak w, skopiuj i wklej kod) oraz następnie podaj nam wyniki (jak w, kopiuj i wklej). – Narcissus
Przepraszamy, oto kod: http://pastebin.com/kS9S4WVk Wszystko działa całkiem nieźle, ale na linii 39-41 próbuję wydrukować wiadomość e-mail z bieżącym kontem. Wynikiem jest "Array()". – Pwntus
Czy są zgłaszane błędy błędów wyświetlania? Czy sprawdziłeś swój log błędów PHP? – Narcissus