My first login class in PHP with PDO and bcrypt This is the first time using a class. Please review this and tell me if it's secure and if it's the right way to do it.  The code itself is working, but I have doubts in the way I used all this.

// register.php
&lt;?php
...
$db_password = $hash = password_hash($pass, PASSWORD_BCRYPT, array("cost" =&gt; 10)); 
.... 
// store in the 'users' table only the hash of the password provided by user.
?&gt;

// clases/manageUsers.php

&lt;?php
include_once('connect.php');

class ManageUsers{
public $link;
public $hash;   

function __construct(){
    $db_connection = new dbConnection();
    $this-&gt;link = $db_connection-&gt;connect();
    return $this-&gt;link;
}           
public function LogIn($id,$email,$pass,$hash){
    $query = $this-&gt;link-&gt;prepare("SELECT id,username,email,pass FROM users WHERE email = :email AND activated = 'y' LIMIT 1");
    $query-&gt;bindParam(':email', $email, PDO::PARAM_STR);
    $query-&gt;execute();              
    $data = $query-&gt;fetch(PDO::FETCH_ASSOC);        
    return $data;       

        if(password_verify($pass,$hash)){                           
            return TRUE;                
        }else{
            return FALSE;
        }           
}

public function logOut($id){
    $query=$this-&gt;link-&gt;prepare("UPDATE users SET verify = '0', activenow = 'n' WHERE id= :id LIMIT 1");
    $query-&gt;bindParam(':id', $id, PDO::PARAM_INT);
    $query-&gt;execute();
    $countsOut = $query-&gt;rowCount();
    return $countsOut;      
}   

}
?&gt;

// login.php

&lt;?php
session_start();
error_reporting(E_ALL);
ini_set('display_errors', '1');


$errorMsg = '';
$email = '';
$pass = '';
$hash="";
$id='';
$token='';
$token = md5(uniqid(rand(),TRUE));

if (isset($_POST['e'])) {   
$email = $_POST['e'];
$pass = $_POST['p'];

$email = stripslashes($email);
$pass = stripslashes($pass);
$email = strip_tags($email);
$pass = strip_tags($pass);

if ((!$email) || (!$pass)) { 
    //header("location: index.php");
    $errorMsg = 'Please fill in both fields';

} else { 
    include_once 'clases/manageUsers.php'; 
    include_once 'clases/connect.php'; 

$loginUsers = new ManageUsers();
$data = $loginUsers-&gt;LogIn($id,$email,$pass,$hash);
            $hash=$data['pass'];

    if(password_verify($pass,$hash) == TRUE){

        $db = new dbConnection();// &lt;- New connection to database to update members table
        $dbh = $db-&gt;connect();   //  with new login data. I think this is WRONG...

            session_regenerate_id(TRUE);
            $id=$data['id'];        
            $username=$data['username'];                

            $query = $dbh-&gt;prepare("UPDATE users SET  verify= :token, lastlog=NOW(), activenow='y' WHERE id= :id LIMIT 1");
            $query-&gt;bindParam(':id', $data['id'], PDO::PARAM_INT);
            $query-&gt;bindParam(':token', $token, PDO::PARAM_STR);
            $query-&gt;execute();

                $_SESSION['id'] = $data['id'];
                $_SESSION['username'] = $data['username'];
                $_SESSION['token'] = $token;

            header("location: profile.php?id=$id"); 
            exit();

    } else { 
            session_destroy();
            header("location: login.php");
            $errorMsg = "Incorrect login data, please try again";
    }
}
} 
?&gt;

//logout.php

&lt;?php
session_start();
include_once 'clases/manageUsers.php';

if(isset ($_SESSION['id']) &amp;&amp; isset ($_SESSION['username']) &amp;&amp; isset ($_SESSION['token'])){
$id=$_SESSION['id'];
    $LgOut = new ManageUsers();
    $loggingOut = $LgOut-&gt;logOut($id);
    if($loggingOut &gt; 0){
    session_destroy();
    session_regenerate_id(TRUE);
    header ('location: login.php');
    }else{
    echo 'Not Logged Out';
    }
}
?&gt;
Your class manages Users. Its job is to handle users. So connecting to a database is not its job! Inject the database connection to the class like so:

public function __construct(\PDO $connection) {

Return values from __construct() are discarded when used from new Object.
When you return, the function ends. So in your LogIn method anything after return $data won't run. Basically, you won't verify the password, and $data will almost always mean true when checked against a boolean. (Basically, you are accepting any password to an existing account).
password_verify() returns a boolean, you can simplify to:

return password_verfiy($pass, $hash);

A user's logged in status should normally not be kept in the database, but in a session.
There's no point in initializing variables with '' if you're immediately overwrite those values with other literals. (It only makes sense if you append data to them in a loop or something similar).
Using stripslashes() and strip_tags means that passwords with certain characters in them would be changed. You don't care about a password having HTML tags because you are not displaying that password as HTML, ever.
if (SOMETHING == true) can be simplified to if (SOMETHING).
If you determined that the class's responsibility is to manage the authentication of your users, all of the authentication logic should be in that class. It's pointless if you do it outside the class :)
What's the point of a token in a session? A token is usually used in a cookie for the purpose of "remember me". It has no meaning in a session.
"Not logged out" is not really a good error message. Explain what went wrong.
Coding style, spacing and indentation - functionNames() and $variableNames should be camel cased, ClassNames should be camel caps. Indent your lines according to the structure block they are found in. Sometimes you use param,param,param and sometimes param, param, param. Pick one and stick with it.