add transfer of auth tokens via request rather than cookie for native app
This commit is contained in:
parent
01d1b2ff13
commit
673742d6ff
@ -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) != '' ){
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user