iotcat 4 years ago
parent 0060ca623a
commit f96b334e8c
  1. 34
      api/checkAccount.php
  2. 3
      api/emailCode.php
  3. 3
      api/smsCode.php
  4. 39
      api/verCode.php
  5. 19
      index.html
  6. 331
      js/login.js

@ -0,0 +1,34 @@
<?php
include './functions.php';
$redis = new redis();
$redis->connect('redis',6379);
$hash = $_REQUEST['hash'];
if(!isset($hash)) die();
if($redis->exists('account/'.$hash)){
$arr = json_decode($redis->get('account/'.$hash));
if(!$arr['isExist']){
$arr_t = $arr;
unset($arr_t['isExist']);
$cnn = db__connect();
db__pushData($cnn, "account", $arr_t);
$arr['isExist'] = true;
$redis->set('account/'.$arr['hash'], json_encode($arr));
}
echo json_encode(array("code"=> 200, "hash"=>$arr['hash'], "message" => "Verified successfully!"));
}else{
echo json_encode(array("code"=> 500, "message"=>"Error!!"));
}

@ -25,3 +25,6 @@ curl_setopt($curl, CURLOPT_URL, $url);
$res = curl_exec($curl); $res = curl_exec($curl);
curl_close($curl); curl_close($curl);
echo json_encode(array(
"code": 200
));

@ -26,3 +26,6 @@ curl_setopt($curl, CURLOPT_URL, $url);
$res = curl_exec($curl); $res = curl_exec($curl);
curl_close($curl); curl_close($curl);
echo json_encode(array(
"code": 200
));

@ -1,20 +1,57 @@
<?php <?php
include './functions.php';
$redis = new redis(); $redis = new redis();
$redis->connect('redis',6379); $redis->connect('redis',6379);
$usr = $_REQUEST['usr']; $usr = $_REQUEST['usr'];
$code = $_REQUEST['code']; $code = $_REQUEST['code'];
$type = $_REQUEST['type'];
if(!isset($usr)) die(); if(!isset($usr)) die();
if(!isset($code)) die(); if(!isset($code)) die();
if(!isset($type) || $type != 'tel' || $type != 'email') die();
if($redis->exists('vercode/'.$usr) && $redis->get('vercode/'.$usr) == $code){ if($redis->exists('vercode/'.$usr) && $redis->get('vercode/'.$usr) == $code){
echo json_encode(array("code"=> 200, "message" => "Verified successfully!")); $cnn = db__connect();
if($type == 'tel'){
$res = db__getData($cnn, "account", "tel", $usr);
}else{
$res = db__getData($cnn, "account", "email", $usr);
}
if(count($res)){
$arr = $res[0];
$arr = array_merge($arr, array("isExist"=>true));
}else{
$arr = array(
"nickname"=>null,
"avatar"=>null,
"tel"=>null,
"email"=>null,
"hash"=> hash('sha256', $usr.$code.$type.time()),
"group"=>"client",
"comments"=>"From ushio-login",
"created_at"=>date("Y-m-d H:i:s", time()),
"updated_at"=>date("Y-m-d H:i:s", time())
);
if($type == 'tel'){
$arr['tel'] = $usr;
}else{
$arr['email'] = $usr;
}
$arr = array_merge($arr, array("isExist"=>false));
}
$redis->set('account/'.$arr['hash'], json_encode($arr));
echo json_encode(array("code"=> 200, "hash"=>$arr['hash'], "isExist"=>$arr['isExist'], "message" => "Verified successfully!"));
}else{ }else{
echo json_encode(array("code"=> 500, "message"=>"Error!!")); echo json_encode(array("code"=> 500, "message"=>"Error!!"));

@ -40,8 +40,9 @@
</div> </div>
<div class="form1"> <div class="form1">
<p class="p-input pos"> <p class="p-input pos">
<label for="num">邮箱</label> <label for="num" id="lab_num">邮箱</label>
<input type="text" id="num"> <input type="text" id="num">
<input type="number" id="num2" class="hide">
<span class="tel-warn num-err hide"><em>账号或密码错误,请重新输入</em><i class="icon-warn"></i></span> <span class="tel-warn num-err hide"><em>账号或密码错误,请重新输入</em><i class="icon-warn"></i></span>
</p> </p>
<p class="p-input pos"> <p class="p-input pos">
@ -51,20 +52,6 @@
<span class="time hide"><em>120</em>s</span> <span class="time hide"><em>120</em>s</span>
<span class="tel-warn error hide">验证码错误</span> <span class="tel-warn error hide">验证码错误</span>
</p> </p>
</div>
<div class="form2 hide">
<p class="p-input pos">
<label for="num2">手机号</label>
<input type="number" id="num2">
<span class="tel-warn num2-err hide"><em>账号或密码错误</em><i class="icon-warn"></i></span>
</p>
<p class="p-input pos">
<label for="veri-code">输入验证码</label>
<input type="number" id="veri-code">
<a href="javascript:;" class="send">发送验证码</a>
<span class="time hide"><em>120</em>s</span>
<span class="tel-warn error hide">验证码错误</span>
</p>
</div> </div>
<div class="reg_checkboxline pos"> <div class="reg_checkboxline pos">
<span class="z"><i class="icon-ok-sign boxcol" nullmsg="请同意!"></i></span> <span class="z"><i class="icon-ok-sign boxcol" nullmsg="请同意!"></i></span>
@ -77,7 +64,7 @@
<a href="./getpass.html" class="y">忘记密码</a> <a href="./getpass.html" class="y">忘记密码</a>
</div>--> </div>-->
<button class="lang-btn off log-btn">登录</button> <button class="lang-btn off log-btn">登录/注册</button>
<!--<div class="third-party"> <!--<div class="third-party">
<a href="#" class="log-qq icon-qq-round"></a> <a href="#" class="log-qq icon-qq-round"></a>
<a href="#" class="log-qq icon-weixin"></a> <a href="#" class="log-qq icon-weixin"></a>

@ -1,5 +1,9 @@
$(function(){ $(function(){
var tab = 'account_number'; var tab = 'account_number';
var usr = '';
var code = '';
var hash = '';
var timer;
// 选项卡切换 // 选项卡切换
$(".account_number").click(function () { $(".account_number").click(function () {
$('.tel-warn').addClass('hide'); $('.tel-warn').addClass('hide');
@ -7,8 +11,9 @@ $(function(){
checkBtn(); checkBtn();
$(this).addClass("on"); $(this).addClass("on");
$(".message").removeClass("on"); $(".message").removeClass("on");
$(".form2").addClass("hide"); $("#num2").addClass("hide");
$(".form1").removeClass("hide"); $("#num").removeClass("hide");
$("#lab_num").html('邮箱');
}); });
// 选项卡切换 // 选项卡切换
$(".message").click(function () { $(".message").click(function () {
@ -17,8 +22,9 @@ $(function(){
checkBtn(); checkBtn();
$(this).addClass("on"); $(this).addClass("on");
$(".account_number").removeClass("on"); $(".account_number").removeClass("on");
$(".form2").removeClass("hide"); $("#num").addClass("hide");
$(".form1").addClass("hide"); $("#num2").removeClass("hide");
$("#lab_num").html('手机号');
}); });
@ -50,213 +56,95 @@ $(function(){
// 按钮是否可点击 // 按钮是否可点击
function checkBtn() function checkBtn()
{ {
$(".log-btn").off('click');
if (tab == 'account_number') {
var inp = $.trim($('#num').val());
var pass = $.trim($('#pass').val());
if (inp != '' && pass != '') {
if (!$('.code').hasClass('hide')) {
code = $.trim($('#veri').val());
if (code == '') {
$(".log-btn").addClass("off");
} else {
$(".log-btn").removeClass("off");
sendBtn();
}
} else {
$(".log-btn").removeClass("off");
sendBtn();
}
} else {
$(".log-btn").addClass("off");
}
} else {
var phone = $.trim($('#num2').val());
var code2 = $.trim($('#veri-code').val());
if (phone != '' && code2 != '') {
$(".log-btn").removeClass("off");
sendBtn();
} else {
$(".log-btn").addClass("off");
}
}
}
function checkAccount(username){
if (username == '') {
$('.num-err').removeClass('hide').find("em").text('请输入账户');
return false;
} else {
$('.num-err').addClass('hide');
return true;
}
} }
function checkPass(pass){
if (pass == '') {
$('.pass-err').removeClass('hide').text('请输入密码');
return false;
} else {
$('.pass-err').addClass('hide');
return true;
}
}
function checkCode(code){
if (code == '') {
// $('.tel-warn').removeClass('hide').text('请输入验证码');
return false;
} else {
// $('.tel-warn').addClass('hide');
return true;
}
}
function checkPhone(phone){
var status = true; function checkTo(phone){
if (phone == '') { if(tab == 'account_number'){
$('.num2-err').removeClass('hide').find("em").text('请输入手机号');
return false; var status = true;
} if (phone == '') {
var param = /^1[34578]\d{9}$/; $('.num-err').removeClass('hide').find("em").text('请输入邮箱');
if (!param.test(phone)) { return false;
// globalTip({'msg':'手机号不合法,请重新输入','setTime':3}); }
$('.num2-err').removeClass('hide'); var param = /^([A-Za-z0-9_\-\.\u4e00-\u9fa5])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,8})$/;
$('.num2-err').text('手机号不合法,请重新输入'); if (!param.test(phone)) {
return false; // globalTip({'msg':'手机号不合法,请重新输入','setTime':3});
$('.num-err').removeClass('hide');
$('.num-err').text('邮箱不合法,请重新输入');
return false;
}
}else{
var status = true;
if (phone == '') {
$('.num-err').removeClass('hide').find("em").text('请输入手机号');
return false;
}
var param = /^1[34578]\d{9}$/;
if (!param.test(phone)) {
// globalTip({'msg':'手机号不合法,请重新输入','setTime':3});
$('.num-err').removeClass('hide');
$('.num-err').text('手机号不合法,请重新输入');
return false;
}
} }
$.ajax({
url: '/checkPhone',
type: 'post',
dataType: 'json',
async: false,
data: {phone:phone,type:"login"},
success:function(data){
if (data.code == '0') {
$('.num2-err').addClass('hide');
// console.log('aa');
// return true;
} else {
$('.num2-err').removeClass('hide').text(data.msg);
// console.log('bb');
status = false;
// return false;
}
},
error:function(){
status = false;
// return false;
}
});
return status; return status;
} }
function checkPhoneCode(pCode){ function checkCode(pCode){
if (pCode == '') { if (pCode == '') {
$('.error').removeClass('hide').text('请输入验证码'); $('.error').removeClass('hide').text('请输入验证码');
return false; return false;
} else { } else {
$('.error').addClass('hide'); $('.error').addClass('hide');
$.get('/api/verCode.php?type='+((tab == 'account_number')?'email':'tel')+'&usr='+usr+'&code='+code, function(data){
if(data.code == 200){
hash = data.hash;
if(data.isExist){
$('.lang-btn').html('登录');
}else{
$('.lang-btn').html('注册');
}
var oTime = $(".form-data .time"),
oSend = $(".form-data .send"),
oEm = $(".form-data .time em");
clearInterval(timer);
oSend.text("验证成功");
oSend.css("color", 'green');
oSend.show();
oEm.text("120");
oTime.addClass("hide");
$(".log-btn").removeClass("off");
$('.error').addClass('hide')
}else{
$('.error').removeClass('hide').text('验证码错误!');
}
});
return true; return true;
} }
} }
// 登录点击事件 // 登录点击事件
function sendBtn(){ function sendBtn(){
if (tab == 'account_number') { $.get('/api/checkAccount.php?hash='+hash, function(data){
$(".log-btn").click(function(){ if(data.code == 200){
// var type = 'phone'; tips.success({message: '登录/注册成功!'})
var inp = $.trim($('#num').val()); window.location.href="https://www.eee.dog/";
var pass = $.md5($.trim($('#pass').val())); }else{
if (checkAccount(inp) && checkPass(pass)) { tips.warning({message: '登录/注册失败!'})
var ldata = {userinp:inp,password:pass}; }
if (!$('.code').hasClass('hide')) { });
code = $.trim($('#veri').val());
if (!checkCode(code)) {
return false;
}
ldata.code = code;
}
$.ajax({
url: '/dologin',
type: 'post',
dataType: 'json',
async: true,
data: ldata,
success:function(data){
if (data.code == '0') {
// globalTip({'msg':'登录成功!','setTime':3,'jump':true,'URL':'http://www.ui.cn'});
globalTip(data.msg);
} else if(data.code == '2') {
$(".log-btn").off('click').addClass("off");
$('.pass-err').removeClass('hide').find('em').text(data.msg);
$('.pass-err').find('i').attr('class', 'icon-warn').css("color","#d9585b");
$('.code').removeClass('hide');
$('.code').find('img').attr('src','/verifyCode?'+Math.random()).click(function(event) {
$(this).attr('src', '/verifyCode?'+Math.random());
});;
return false;
} else if(data.code == '3') {
$(".log-btn").off('click').addClass("off");
$('.img-err').removeClass('hide').find('em').text(data.msg);
$('.img-err').find('i').attr('class', 'icon-warn').css("color","#d9585b");
$('.code').removeClass('hide');
$('.code').find('img').attr('src','/verifyCode?'+Math.random()).click(function(event) {
$(this).attr('src', '/verifyCode?'+Math.random());
});
return false;
} else if(data.code == '1'){
$(".log-btn").off('click').addClass("off");
$('.num-err').removeClass('hide').find('em').text(data.msg);
$('.num-err').find('i').attr('class', 'icon-warn').css("color","#d9585b");
return false;
}
},
error:function(){
}
});
} else {
return false;
}
});
} else {
$(".log-btn").click(function(){
// var type = 'phone';
var phone = $.trim($('#num2').val());
var pcode = $.trim($('#veri-code').val());
if (checkPhone(phone) && checkPass(pcode)) {
$.ajax({
url: '/plogin',
type: 'post',
dataType: 'json',
async: true,
data: {phone:phone,code:pcode},
success:function(data){
if (data.code == '0') {
// globalTip({'msg':'登录成功!','setTime':3,'jump':true,'URL':'http://www.ui.cn'});
globalTip(data.msg);
} else if(data.code == '1') {
$(".log-btn").off('click').addClass("off");
$('.num2-err').removeClass('hide').text(data.msg);
return false;
} else if(data.code == '2') {
$(".log-btn").off('click').addClass("off");
$('.error').removeClass('hide').text(data.msg);
return false;
}
},
error:function(){
}
});
} else {
$(".log-btn").off('click').addClass("off");
// $('.tel-warn').removeClass('hide').text('登录失败');
return false;
}
});
}
} }
// 登录的回车事件 // 登录的回车事件
@ -268,42 +156,61 @@ $(function(){
$(".form-data").delegate(".send","click",function () { $(".form-data").delegate(".send","click",function () {
var phone = $.trim($('#num2').val());
if (checkPhone(phone)) { if(tab == 'account_number'){
$.ajax({ var to = $.trim($('#num').val());
url: '/getcode', }else{
type: 'post', var to = $.trim($('#num2').val());
dataType: 'json', }
async: true,
data: {phone:phone,type:"login"},
success:function(data){ if (checkTo(to)) {
if (data.code == '0') {
} else {
}
},
error:function(){
}
});
var oTime = $(".form-data .time"), var oTime = $(".form-data .time"),
oSend = $(".form-data .send"), oSend = $(".form-data .send"),
num = parseInt(oTime.text()), num = parseInt(oTime.text()),
oEm = $(".form-data .time em"); oEm = $(".form-data .time em");
$(this).hide(); $(this).hide();
oTime.removeClass("hide"); oTime.removeClass("hide");
var timer = setInterval(function () { timer = setInterval(function () {
var num2 = num-=1; var num2 = num-=1;
oEm.text(num2); oEm.text(num2);
if(num2==0){ if(num2==0){
clearInterval(timer); clearInterval(timer);
oSend.text("重新发送验证码"); oSend.css("color", 'red');
oSend.show(); oSend.show();
oEm.text("120"); oEm.text("120");
oTime.addClass("hide"); oTime.addClass("hide");
} }
},1000); },1000);
$.ajax({
url: '/api/'+((tab == 'account_number')?'email':'sms')+'Code.php',
type: 'get',
dataType: 'json',
async: true,
data: {email: to, tel: to},
success:function(data){
if (data.code == '200') {
} else {
clearInterval(timer);
oSend.text("重新发送验证码");
oSend.css("color", 'red');
oSend.show();
oEm.text("120");
oTime.addClass("hide");
}
},
error:function(){
clearInterval(timer);
oSend.text("重新发送验证码");
oSend.css("color", 'red');
oSend.show();
oEm.text("120");
oTime.addClass("hide");
}
});
} }
}); });

Loading…
Cancel
Save