function __login_google($full_name, $email, $type, $dtoken, $google_id) { $user = User::where('email', 'like', $email)->first(); if ($user == NULL) { __register($full_name, $email, NULL, NULL, $google_id); } else { if ($user->google_id != $google_id) { $user->google_id = $google_id; $user->save(); Login::where('user_id', $user->id)->delete(); $login = new Login(); $login->push_type = $type; $login->push_token = $dtoken; $login->token = md5($email . date('Y-m-d')); $user->logins()->save($login); $user->login_token = $login->token; } } return $user; }
/** * @api {post} /auth/register Register a user * @apiVersion 1.0.0 * @apiName Register * @apiGroup Auth * * @apiParam {String} full_name User Full name. * @apiParam {String} email User Email. * @apiParam {String} pswd User Password. * @apiParam {Number} push_type Device type for push notification. 1 : iOS, 2 : Android. * @apiParam {String} push_token Device token for push notification. */ function register() { $params = ['full_name', 'email', 'pswd', 'push_type', 'push_token']; $result = validateParam($params); if ($result === true) { extract($_POST); $result = array(); if (__register($full_name, $email, $pswd)) { $user = __login($email, $pswd, $push_type, $push_token); if ($user == NULL) { $result['success'] = 'false'; $result['message'] = 'No such user'; } else { $result['message'] = 'Successfully registered.'; $result['success'] = 'true'; $result['data']['token'] = $user->logins()->first()->token; $result['data']['avatar'] = $user->avatar; $result['data']['full_name'] = $user->full_name; $result['data']['agent_id'] = $user->id; } } else { $result['message'] = 'This email is already used.'; $result['success'] = 'false'; } } echo json_encode($result); }