Exemplo n.º 1
0
 public function hashTest()
 {
     $pwd = "testPassword";
     $hashPwd = Hash::passwordHash($pwd);
     $this->assertEquals(true, Hash::checkPassword($hashPwd, $pwd));
     $this->assertEquals(false, Hash::checkPassword("", $pwd));
 }
Exemplo n.º 2
0
 public function update($request, $response, $args)
 {
     $id = $args['id'];
     $user = User::find($id);
     $user->email = $request->getParam('email');
     if ($request->getParam('pass') != '') {
         $user->pass = Hash::passwordHash($request->getParam('pass'));
     }
     $user->port = $request->getParam('port');
     $user->passwd = $request->getParam('passwd');
     $user->transfer_enable = $request->getParam('transfer_enable');
     $user->invite_num = $request->getParam('invite_num');
     $user->method = $request->getParam('method');
     $user->enable = $request->getParam('enable');
     $user->is_admin = $request->getParam('is_admin');
     $user->ref_by = $request->getParam('ref_by');
     if (!$user->save()) {
         $rs['ret'] = 0;
         $rs['msg'] = "修改失败";
         return $response->getBody()->write(json_encode($rs));
     }
     $rs['ret'] = 1;
     $rs['msg'] = "修改成功";
     return $response->getBody()->write(json_encode($rs));
 }
Exemplo n.º 3
0
 public function handleToken($request, $response, $args)
 {
     $tokenStr = $args['token'];
     $password = $request->getParam('password');
     // check token
     $token = PasswordReset::where('token', $tokenStr)->first();
     if ($token == null || $token->expire_time < time()) {
         $rs['ret'] = 0;
         $rs['msg'] = '链接已经失效,请重新获取';
         return $response->getBody()->write(json_encode($rs));
     }
     $user = User::where('email', $token->email)->first();
     if ($user == null) {
         $rs['ret'] = 0;
         $rs['msg'] = '链接已经失效,请重新获取';
         return $response->getBody()->write(json_encode($rs));
     }
     // reset password
     $hashPassword = Hash::passwordHash($password);
     $user->pass = $hashPassword;
     if (!$user->save()) {
         $rs['ret'] = 0;
         $rs['msg'] = '重置失败,请重试';
         return $response->getBody()->write(json_encode($rs));
     }
     $rs['ret'] = 1;
     $rs['msg'] = '重置成功';
     return $response->getBody()->write(json_encode($rs));
 }
Exemplo n.º 4
0
 public function loginHandle($request, $response, $next)
 {
     // $data = $request->post('sdf');
     $email = $request->getParam('email');
     $email = strtolower($email);
     $passwd = $request->getParam('passwd');
     $rememberMe = $request->getParam('remember_me');
     // Handle Login
     $user = User::where('email', '=', $email)->first();
     if ($user == null) {
         $rs['code'] = '0';
         $rs['msg'] = "401 邮箱或者密码错误";
         return $response->getBody()->write(json_encode($rs));
     }
     if ($user->pass != Hash::passwordHash($passwd)) {
         $rs['code'] = '0';
         $rs['msg'] = "402 邮箱或者密码错误";
         return $response->getBody()->write(json_encode($rs));
     }
     // @todo
     $time = 3600 * 24;
     Auth::login($user->id, $time);
     $rs['code'] = '1';
     $rs['ok'] = '1';
     $rs['msg'] = "欢迎回来";
     return $response->getBody()->write(json_encode($rs));
 }
Exemplo n.º 5
0
 public function createAdmin()
 {
     echo "add admin/ 创建管理员帐号.....";
     // ask for input
     fwrite(STDOUT, "Enter your email/输入管理员邮箱: ");
     // get input
     $email = trim(fgets(STDIN));
     // write input back
     fwrite(STDOUT, "Enter password for: {$email} / 为 {$email} 添加密码 ");
     $passwd = trim(fgets(STDIN));
     echo "Email: {$email}, Password: {$passwd}! ";
     fwrite(STDOUT, "Press [Y] to create admin..... 按下[Y]确认来确认创建管理员账户..... ");
     $y = trim(fgets(STDIN));
     if (strtolower($y) == "y") {
         echo "start create admin account";
         // create admin user
         // do reg user
         $user = new User();
         $user->user_name = "admin";
         $user->email = $email;
         $user->pass = Hash::passwordHash($passwd);
         $user->passwd = Tools::genRandomChar(6);
         $user->port = Tools::getLastPort() + 1;
         $user->t = 0;
         $user->u = 0;
         $user->d = 0;
         $user->transfer_enable = Tools::toGB(Config::get('defaultTraffic'));
         $user->invite_num = Config::get('inviteNum');
         $user->ref_by = 0;
         $user->is_admin = 1;
         if ($user->save()) {
             echo "Successful/添加成功!";
             return true;
         }
         echo "添加失败";
         return false;
     }
     echo "cancel";
     return false;
 }
Exemplo n.º 6
0
 public function registerHandle($request, $response, $args)
 {
     $name = $request->getParam('name');
     $email = $request->getParam('email');
     $email = strtolower($email);
     $passwd = $request->getParam('passwd');
     $repasswd = $request->getParam('repasswd');
     $code = $request->getParam('code');
     $verifycode = $request->getParam('verifycode');
     // check code
     $c = InviteCode::where('code', $code)->first();
     if ($c == null) {
         $res['ret'] = 0;
         $res['error_code'] = self::WrongCode;
         $res['msg'] = "邀请码无效";
         return $this->echoJson($response, $res);
     }
     // check email format
     if (!Check::isEmailLegal($email)) {
         $res['ret'] = 0;
         $res['error_code'] = self::IllegalEmail;
         $res['msg'] = "邮箱无效";
         return $this->echoJson($response, $res);
     }
     // check pwd length
     if (strlen($passwd) < 8) {
         $res['ret'] = 0;
         $res['error_code'] = self::PasswordTooShort;
         $res['msg'] = "密码太短";
         return $this->echoJson($response, $res);
     }
     // check pwd re
     if ($passwd != $repasswd) {
         $res['ret'] = 0;
         $res['error_code'] = self::PasswordNotEqual;
         $res['msg'] = "两次密码输入不符";
         return $this->echoJson($response, $res);
     }
     // check email
     $user = User::where('email', $email)->first();
     if ($user != null) {
         $res['ret'] = 0;
         $res['error_code'] = self::EmailUsed;
         $res['msg'] = "邮箱已经被注册了";
         return $this->echoJson($response, $res);
     }
     // verify email
     if (Config::get('emailVerifyEnabled') && !EmailVerify::checkVerifyCode($email, $verifycode)) {
         $res['ret'] = 0;
         $res['msg'] = '邮箱验证代码不正确';
         return $this->echoJson($response, $res);
     }
     // check ip limit
     $ip = Http::getClientIP();
     $ipRegCount = Check::getIpRegCount($ip);
     if ($ipRegCount >= Config::get('ipDayLimit')) {
         $res['ret'] = 0;
         $res['msg'] = '当前IP注册次数超过限制';
         return $this->echoJson($response, $res);
     }
     // do reg user
     $user = new User();
     $user->user_name = $name;
     $user->email = $email;
     $user->pass = Hash::passwordHash($passwd);
     $user->passwd = Tools::genRandomChar(6);
     $user->port = Tools::getLastPort() + 1;
     $user->t = 0;
     $user->u = 0;
     $user->d = 0;
     $user->transfer_enable = Tools::toGB(Config::get('defaultTraffic'));
     $user->invite_num = Config::get('inviteNum');
     $user->reg_ip = Http::getClientIP();
     $user->ref_by = $c->user_id;
     if ($user->save()) {
         $res['ret'] = 1;
         $res['msg'] = "注册成功";
         $c->delete();
         return $this->echoJson($response, $res);
     }
     $res['ret'] = 0;
     $res['msg'] = "未知错误";
     return $this->echoJson($response, $res);
 }
Exemplo n.º 7
0
 public function updatePassword($request, $response, $args)
 {
     $oldpwd = $request->getParam('oldpwd');
     $pwd = $request->getParam('pwd"');
     $repwd = $request->getParam('repwd"');
     $user = $this->user;
     if (!Hash::checkPassword($user->pass, $oldpwd)) {
         $res['ret'] = 0;
         $res['msg'] = "旧密码错误";
         return $response->getBody()->write(json_encode($res));
     }
     if ($pwd != $repwd) {
         $res['ret'] = 0;
         $res['msg'] = "两次输入不符合";
         return $response->getBody()->write(json_encode($res));
     }
     if (strlen($pwd) < 8) {
         $res['ret'] = 0;
         $res['msg'] = "密码太短啦";
         return $response->getBody()->write(json_encode($res));
     }
     $hashPwd = Hash::passwordHash($pwd);
     $user->pass = $hashPwd;
     $user->save();
     $res['ret'] = 1;
     $res['msg'] = "ok";
     return $response->getBody()->write(json_encode($res));
 }
Exemplo n.º 8
0
 public function updatePassword($pwd)
 {
     $this->pass = Hash::passwordHash($pwd);
     $this->save();
 }
Exemplo n.º 9
0
 public function registerHandle($request, $response, $next)
 {
     $name = $request->getParam('name');
     $email = $request->getParam('email');
     $email = strtolower($email);
     $passwd = $request->getParam('passwd');
     $repasswd = $request->getParam('repasswd');
     $code = $request->getParam('code');
     // check code
     $c = InviteCode::where('code', $code)->first();
     if ($c == null) {
         $res['ret'] = 0;
         $res['msg'] = "邀请码无效";
         return $response->getBody()->write(json_encode($res));
     }
     // check email format
     if (!Check::isEmailLegal($email)) {
         $res['ret'] = 0;
         $res['msg'] = "邮箱无效";
         return $response->getBody()->write(json_encode($res));
     }
     // check pwd length
     if (strlen($passwd) < 8) {
         $res['ret'] = 0;
         $res['msg'] = "密码太短";
         return $response->getBody()->write(json_encode($res));
     }
     // check pwd re
     if ($passwd != $repasswd) {
         $res['ret'] = 0;
         $res['msg'] = "两次密码输入不符";
         return $response->getBody()->write(json_encode($res));
     }
     // check email
     $user = User::where('email', $email)->first();
     if ($user != null) {
         $res['ret'] = 0;
         $res['msg'] = "邮箱已经被注册了";
         return $response->getBody()->write(json_encode($res));
     }
     // do reg user
     $user = new User();
     $user->user_name = $name;
     $user->email = $email;
     $user->pass = Hash::passwordHash($passwd);
     $user->passwd = Tools::genRandomChar(6);
     $user->port = Tools::getLastPort() + 1;
     $user->t = 0;
     $user->u = 0;
     $user->d = 0;
     $user->transfer_enable = Tools::toGB(Config::get('defaultTraffic'));
     $user->invite_num = Config::get('inviteNum');
     $user->ref_by = $c->user_id;
     if ($user->save()) {
         $res['ret'] = 1;
         $res['msg'] = "注册成功";
         $c->delete();
         return $response->getBody()->write(json_encode($res));
     }
     $res['ret'] = 0;
     $res['msg'] = "未知错误";
     return $response->getBody()->write(json_encode($res));
 }