phpmysqlijanrain

How to get users email addresses using Janrain basic


I'm trying to get users email addresses when they log in so I can they can be entered into my database and given a unique ID. I've managed to retrieve user display names and store them in the database using this code however its not working with the email address.

session_start();
            if(property_exists($profile->profile,'displayName')){
                $_SESSION['username'] = $profile->profile->displayName;
                $_SESSION['email'] = $profile->profile->email;
                $_SESSION['logged']="logged";

                $username = $_SESSION['username'];
                $email = $_SESSION['email'];

                require_once("db_connect.php");
                $query="SELECT email FROM users WHERE email = '$email'";
                mysqli_select_db($db_server, $db_database);
                $result=mysqli_query($db_server, $query);
                if($result != $email){
                    $query = "INSERT INTO users (username, email) VALUES ('$username', '$email')";
                    mysqli_query($db_server, $query) or
                                die("Insert failed. ". mysqli_error($db_server));
                }else{
                    echo "Login error.";    
                }

                mysqli_free_result($result);
                require_once("db_close.php");
                header('location:home.php');
            }else{
                $_SESSION['username'] = '(Anonymous)';
                $_SESSION['logged']="logged";
                header('location:home.php');
          } 

Thanks for your help.


Solution

  • It sounds like it has to do with what information the providers share by default. I believe these steps should fix it:

    1. Log in to https://dashboard.janrain.com/
    2. Select your Engage application
    3. In the "Providers" box, hover over the one that you are trying to authenticate with
    4. Click the small wrench icon that appears after you've hovered over the provider
    5. Make sure that the "Ask" box is checked next to "email"

    Let me know if that works out for you!