add transfer of auth tokens via request rather than cookie for native app

This commit is contained in:
arzynik 2013-08-12 20:00:31 -07:00
parent 01d1b2ff13
commit 673742d6ff

View File

@ -232,48 +232,70 @@ class Controller_api_user extends Crunchbutton_Controller_Rest {
break;
}
break;
// Force register the facebook
case 'facebook':
foreach ( $_COOKIE as $key => $value ) {
if ( preg_match('/^fbsr_.*$/', $key ) ) {
$fb = new Crunchbutton_Auth_Facebook;
$user = c::user();
if ( $fb->user()->id ) {
// It seems the facebook user is already related with other user
$fb_user = User::facebook( $fb->user()->id );
if ( $fb_user->id_user && $user->id_user ) {
if( $fb_user->id_user != $user->id_user ){
echo json_encode(['error' => 'facebook id already in use']);
exit;
}
}
if ( !$fb_user->id_user ) {
$user->active = 1;
$user->name = $fb->user()->name;
$user->email = $fb->user()->email;
$user->save();
$userAuth = new User_Auth;
$userAuth->active = 1;
$userAuth->id_user = $user->id_user;
$userAuth->type = 'facebook';
$userAuth->auth = $fb->user()->id;
$userAuth->save();
// This line will create a phone user auth just if the user already has an facebook auth
if( $user->phone ){
User_Auth::createPhoneAuthFromFacebook( $user->id_user, $user->phone );
}
}
} else {
// we dont have a facebook user
}
break;
if ($_REQUEST['fbtoken']) {
// log in from the app
$fb = c::facebook();
$fb->setAccessToken($_REQUEST['fbtoken']);
$user = $fb->getUser();
if ($user) {
try {
$userObject = $fb->api('/'.$user);
} catch (Cana_Facebook_Exception $e) {
// debug for now
print_r($e);
$userObject = null;
}
}
echo c::user()->json();
echo json_encode($userObject);
break;
}
// Force register the facebook
foreach ( $_COOKIE as $key => $value ) {
if ( preg_match('/^fbsr_.*$/', $key ) ) {
$fb = new Crunchbutton_Auth_Facebook;
$user = c::user();
if ( $fb->user()->id ) {
// It seems the facebook user is already related with other user
$fb_user = User::facebook( $fb->user()->id );
if ( $fb_user->id_user && $user->id_user ) {
if( $fb_user->id_user != $user->id_user ){
echo json_encode(['error' => 'facebook id already in use']);
exit;
}
}
if ( !$fb_user->id_user ) {
$user->active = 1;
$user->name = $fb->user()->name;
$user->email = $fb->user()->email;
$user->save();
$userAuth = new User_Auth;
$userAuth->active = 1;
$userAuth->id_user = $user->id_user;
$userAuth->type = 'facebook';
$userAuth->auth = $fb->user()->id;
$userAuth->save();
// This line will create a phone user auth just if the user already has an facebook auth
if( $user->phone ){
User_Auth::createPhoneAuthFromFacebook( $user->id_user, $user->phone );
}
}
} else {
// we dont have a facebook user
}
break;
}
}
echo c::user()->json();
break;
// Return the user's credit
case 'credit':
if( c::getPagePiece(3) != '' ){