|
@@ -12,7 +12,7 @@ class Login extends Controller{
|
|
|
/**
|
|
|
* 用户注册
|
|
|
* */
|
|
|
- public function login(){
|
|
|
+ public function login1(){
|
|
|
$data = $this->request->post();
|
|
|
if (empty($data['phone'])){
|
|
|
$this->error('手机号不能为空','','400');
|
|
@@ -168,6 +168,108 @@ class Login extends Controller{
|
|
|
}
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
+ * 用户注册登录
|
|
|
+ * */
|
|
|
+ public function login(){
|
|
|
+ $name = input('name/s','');
|
|
|
+ $id_card = input('id_card','');
|
|
|
+ if (empty($name) || empty($id_card)){
|
|
|
+ $this->error('姓名和身份证不能为空','','400');
|
|
|
+ }
|
|
|
+ if (!$this->is_idcard($id_card)){
|
|
|
+ $this->error('请输入正确的身份证','','400');
|
|
|
+ }
|
|
|
+ $in_data['id_card'] = $id_card;
|
|
|
+ $user_info = Db::table('dx_user')->where($in_data)->where('is_deleted',0)->find();
|
|
|
+ if ($user_info){
|
|
|
+ if ($user_info['status'] !=1){
|
|
|
+ $this->error('审核未通过','','400');
|
|
|
+ }else{
|
|
|
+ $token_arr = [
|
|
|
+ 'time' => Config('jwt_time')+time(),
|
|
|
+ 'uid'=>$user_info['id'],
|
|
|
+ ];
|
|
|
+ $token = JWT::encode($token_arr, Config('jwt_key'), 'HS256');
|
|
|
+ $this->success('登录成功',$token,'200');
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ $in_data['id_card'] = $id_card;
|
|
|
+ $in_data['add_time'] = date('Y-m-d H:i:s',time());
|
|
|
+ $uid = Db::table('dx_user')->insertGetId($in_data);
|
|
|
+ $this->error('请耐心等待审核','','400');
|
|
|
+ /*$token_arr = [
|
|
|
+ 'time' => Config('jwt_time')+time(),
|
|
|
+ 'uid'=>$uid,
|
|
|
+ ];
|
|
|
+ $token = JWT::encode($token_arr, Config('jwt_key'), 'HS256');
|
|
|
+ $this->success('登录成功',$token,'200');*/
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //验证身份证
|
|
|
+ function is_idcard( $id )
|
|
|
+ {
|
|
|
+ $id = strtoupper($id);
|
|
|
+ $regx = "/(^\d{15}$)|(^\d{17}([0-9]|X)$)/";
|
|
|
+ $arr_split = array();
|
|
|
+ if(!preg_match($regx, $id))
|
|
|
+ {
|
|
|
+ return FALSE;
|
|
|
+ }
|
|
|
+ if(15==strlen($id)) //检查15位
|
|
|
+ {
|
|
|
+ $regx = "/^(\d{6})+(\d{2})+(\d{2})+(\d{2})+(\d{3})$/";
|
|
|
+
|
|
|
+ @preg_match($regx, $id, $arr_split);
|
|
|
+ //检查生日日期是否正确
|
|
|
+ $dtm_birth = "19".$arr_split[2] . '/' . $arr_split[3]. '/' .$arr_split[4];
|
|
|
+ if(!strtotime($dtm_birth))
|
|
|
+ {
|
|
|
+ return FALSE;
|
|
|
+ } else {
|
|
|
+ return TRUE;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else //检查18位
|
|
|
+ {
|
|
|
+ $regx = "/^(\d{6})+(\d{4})+(\d{2})+(\d{2})+(\d{3})([0-9]|X)$/";
|
|
|
+ @preg_match($regx, $id, $arr_split);
|
|
|
+ $dtm_birth = $arr_split[2] . '/' . $arr_split[3]. '/' .$arr_split[4];
|
|
|
+ if(!strtotime($dtm_birth)) //检查生日日期是否正确
|
|
|
+ {
|
|
|
+ return FALSE;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //检验18位身份证的校验码是否正确。
|
|
|
+ //校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。
|
|
|
+ $arr_int = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
|
|
|
+ $arr_ch = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
|
|
|
+ $sign = 0;
|
|
|
+ for ( $i = 0; $i < 17; $i++ )
|
|
|
+ {
|
|
|
+ $b = (int) $id{$i};
|
|
|
+ $w = $arr_int[$i];
|
|
|
+ $sign += $b * $w;
|
|
|
+ }
|
|
|
+ $n = $sign % 11;
|
|
|
+ $val_num = $arr_ch[$n];
|
|
|
+ if ($val_num != substr($id,17, 1))
|
|
|
+ {
|
|
|
+ return FALSE;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return TRUE;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
|
|
|
}
|