55 lines
979 B
PHP
55 lines
979 B
PHP
<?php
|
|
|
|
class Crunchbutton_Auth_Facebook extends Cana_Model {
|
|
public function __construct($token = null, $user = null) {
|
|
$this->_facebook = c::facebook();
|
|
|
|
if ($token) {
|
|
$this->facebook()->setAccessToken($token);
|
|
}
|
|
|
|
if (!$user) {
|
|
$this->check();
|
|
} else {
|
|
$this->_user = $user;
|
|
}
|
|
|
|
}
|
|
|
|
public function check() {
|
|
$user = c::facebook()->getUser();
|
|
|
|
if ($user) {
|
|
try {
|
|
$userObject = $this->facebook()->api('/'.$user);
|
|
} catch (Cana_Facebook_Exception $e) {
|
|
$userObject = null;
|
|
}
|
|
}
|
|
|
|
$this->_fbuser = Cana_Model::toModel($userObject);
|
|
return $this;
|
|
}
|
|
|
|
public function login() {
|
|
header('Location: '.$this->facebook()->getLoginUrl().'&scope=email');
|
|
exit;
|
|
}
|
|
|
|
public function logout() {
|
|
header('Location: '.$this->facebook()->getLogoutUrl());
|
|
exit;
|
|
}
|
|
|
|
public function fbuser() {
|
|
return $this->_fbuser;
|
|
}
|
|
|
|
public function user() {
|
|
return $this->_user;
|
|
}
|
|
|
|
public function facebook() {
|
|
return $this->_facebook;
|
|
}
|
|
} |