login.blade.php 16.4 KB
<?php 

/*Code for token generation Flexydial Security Purpose*/
if (session_status() == PHP_SESSION_NONE) { session_start(); }

function randomPassword() {
    $alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789";
    $pass = array(); //remember to declare $pass as an array
    $alphaLength = strlen($alphabet) - 1; //put the length -1 in cache
    for ($i = 0; $i < 8; $i++) {
        $n = rand(0, $alphaLength);
        $pass[] = $alphabet[$n];
    }
    return implode($pass); //turn the array into a string
}

if (isset($_SESSION['token_prev'])) {
   unset($_SESSION['token_prev']);

   $_SESSION['token_prev']=randomPassword();
}
else{
$_SESSION['token_prev']=randomPassword();

}

if (isset($_SESSION['token_end'])) {
   unset($_SESSION['token_end']);

   $_SESSION['token_end']=randomPassword();
  
}
else{
$_SESSION['token_end']=randomPassword();


}
if (isset($_SESSION['token_security'])) {
   unset($_SESSION['token_security']);

   $_SESSION['token_security']=randomPassword();
   # code...
}
else{
$_SESSION['token_security']=randomPassword();

}
/*Code for token generation Flexydial Security Purpose*/

use \App\Models\User;

if(Input::get('sendotp')=="1")
{
    $otpuser=trim(Input::get('otpuser'));
    $user=User::where('username','=',$otpuser)->first();
    if($user)
    {
        $otpemail=$user->email;
        $otp=rand(100000, 999999);
        
        $user->password=Hash::make($otp);
        
        $meta=$user->meta();
        if(!isset($meta['otp_array']))$meta['otp_array']=array();
        if(!isset($meta['otp_array'][date('Ymd')])){$meta['otp_array']=array();$meta['otp_array'][date('Ymd')]=0;}
        $meta['otp_array'][date('Ymd')]++;
        
        if($meta['otp_array'][date('Ymd')]<=3)
        {
        $user->meta=json_encode($meta);
        $user->save();
        
        Mail::send('emails.notification', 
                array(
                        'heloname'=>'',
                        'line1'=>'Your OTP for Login : '.$otp.' ',
                        'line2'=>'Please visit <a href="'.URL::to('/').'"><b>'.Config::get("app.name").' </b></a> and You can login using this OTP.',
                        'line3'=>'',
                        'notifytype'=>'OTP'), function($message) use ($otpemail)
                                {
                                        $message->to($otpemail,$otpemail);
                                        $message->subject(Config::get("app.name")." OTP for Login");
                                });
        echo "$(\"#alertdiv\").html('<div class=\"alert alert-success\"><button type=button class=close data-dismiss=alert>&times;</button><strong>Success</strong> OTP Sent to ($otpemail)</div>');";
        }
        else echo "$(\"#alertdiv\").html('<div class=\"alert alert-danger\"><button type=button class=close data-dismiss=alert>&times;</button><strong>Failed</strong> Too many reuests ($otpemail), please try after 24 hrs</div>');";
    }
    else echo "$(\"#alertdiv\").html('<div class=\"alert alert-danger\"><button type=button class=close data-dismiss=alert>&times;</button><strong>Failed</strong> Invalid User </div>');";
}
else
{

?>

@include('layout.header')


<style>
    body {
        background: url(assets/images/main.jpg) no-repeat center center fixed;
        -webkit-background-size: cover;
        -moz-background-size: cover;
        -o-background-size: cover;
        background-size: cover;
}
    .layout-app .col-separator{
        background: url(assets/images/main.jpg) no-repeat center center fixed;
        -webkit-background-size: cover;
        -moz-background-size: cover;
        -o-background-size: cover;
        background-size: cover;
        
    }
    html.app .layout-app .col-separator{
        margin:0px !important;
    }
    .blur_bg{
        
    }
    html.app .layout-app{
        top: 0px;
        bottom: 0px;
    }
    .login{
        background: #fff;
        border-radius: 2px;
        top: 15%;
        -webkit-box-shadow: 0px 7px 22px 0px rgb(131, 151, 167);
        -moz-box-shadow: 0px 7px 22px 0px rgb(131, 151, 167);
        box-shadow: 0px 7px 22px 0px rgb(131, 151, 167);
}
    .login_head{
        background: #fff;
    border-radius: 2px 2px 0px 0;
        margin: 0 -5px;
    }
    .login_head img{
            margin: 0 auto;
    display: block;
    padding: 20px 0px 0px;
    border: 0px;
        height:70px;
    }
    .login_head span{
        color: #505050;
        display: block;
        text-align: center;
        margin-top: 10px;
        font-size: 15px;
        text-transform: uppercase;
        font-weight: 600;
    }
    .login_head  p{
        font-family: 'Open-Sans', sans-serif;
        font-weight: 400;
        line-height: 30px;
        font-size: 15px;
        color: #505050;
        -webkit-box-shadow: inset 0px -2px 10px -8px rgba(20,20,20,1);
        -moz-box-shadow: inset 0px -2px 10px -8px rgba(20,20,20,1);
        box-shadow: inset 0px -2px 10px -8px rgba(20,20,20,1);
    }
    .panel{
        background: transparent;
        border: 0px;
        box-shadow: 0 0px 0px rgba(0, 0, 0, 0.05);
        -webkit-box-shadow: 0 0px 0px rgba(0, 0, 0, 0.05);
    }
    .form-control::-webkit-input-placeholder {
   color: #5F5F5F;
    }
    .form-control:-moz-placeholder {
       color: #5F5F5F;  
    }
    .form-control::-moz-placeholder { 
       color: #5F5F5F;  
    }
    .form-control:-ms-input-placeholder {  
       color: #5F5F5F;  
    }
    .form-control{
            background: transparent;
    border: 0px;
    border-bottom: 1px solid #5F5F5F !important;
        font-weight: 600;
    }
    input[type="text"]:focus, input[type="text"]:active, input[type="text"]:hover{
        background: transparent;
        font-weight: 900;
    }
    input[type="text"], input[type="password"], select, textarea{
        color: #5F5F5F;
    }
    .login_btn{
        margin-top: 40px;
        border-radius: 0px;
        background: #4B9DD8;
        border: 0px;
        padding: 10px;
        font-weight: 600;
        text-transform: uppercase;
        color: #fff;
    }
    .login_btn:hover, .login_btn:active, .login_btn:focus{
        background: #8DC4EA;
        color: #fff
    }
    .login_otp{
        width: 30%;
        border-radius: 0px;
        background: #5F5F5F;
        border: 0px;
        padding: 10px;
        font-weight: 600;
        text-transform: uppercase;
        color: #FFFFFF;
        font-size: 12px;
    }
    .login_otp:hover, .login_otp:active, .login_otp:focus{
        border:1px solid #5F5F5F;
        color: #5F5F5F;
        padding:9px 10px;
    }
    .alternate_login{
        margin-top: 30px;
    }
 /*   .alternate_login label{
        background: #89ceff;
        padding: 10px 20px;
        border-radius: 2px;
    }*/
    .alternate_login label a{
        color: #4B9DD8;
    }
    .alternate_login label a:hover{
        color:#5B86A5;
    }
    .or_div{
    line-height: 0.5;
    text-align: center;
    width: 100%;
    margin-top: 20px;
    }
    .or_div p{
    display: inline-block;
    position: relative;
    color: #505050;
    font-weight: 600;
    border: 1px solid #505050;
    width: 40px;
    height: 40px;
    line-height: 40px;
    border-radius: 50%;
    }
    .or_div p:before, .or_div p:after{
    content: "";
    position: absolute;
    height: 5px;
    border-bottom: 1px solid #7D7D7D;
    top: 15px;
    width: 130px;
    }
    .or_div p:before{
         right: 100%;
    }
    .or_div p:after{
        left: 100%;
    }
    .alert.alert-danger {
        background: none repeat scroll 0 0 #F95B5B;
        border-color: #F95B5B;
        color: #ffffff;
        border-radius: 0;
        padding: 10px;
    }
    .alert.alert-warning{
        background: none repeat scroll 0 0 #FFA84F;
        border-color: #FFA84F;
        color: #ffffff;
        border-radius: 0;
        padding: 10px;
    }
</style>
            
            <div class="layout-app" style="height: 100%;"><!-- row-app -->
<div class="row row-app" style="height: 100%;">

    <!-- col -->
    

        <!-- col-separator.box -->
        <div class="col-separator col-unscrollable box" style="height: 100%;">
            
            <!-- col-table -->
            <div class="col-table blur_bg" style="height: 100%;">
                <!-- col-table-row -->
                <div class="col-table-row" style="height: 100%;">

                    <!-- col-app -->
                    <div class="col-app col-unscrollable" style="height: 100%;">

                        <!-- col-app -->
                        <div class="col-app" style="height: 100%;">
                            <div class="login col-sm-4 col-sm-offset-4">
                                <div class="login_head">
                                    <img src="custom/logo.png">
                                    <p class="innerAll margin-none text-center hidden-xs">Login to your account</p>
                                </div>
                                <div class="panel panel-default col-sm-12">

                                  <div class="panel-body">
                                  

<div id='alertdiv'>
<?php 
$class="";
$type="";
$msg="";
if(isset($error))
{
  if($error=="activationsuccess"){$class="success";$type="Verified!";$msg="Congratulations, your account is now active, please login to continue.";}
  else if($error=="authfailed"){$class="danger";$type="Login Failed!";$msg="Incorrect Email id or password.";}
  else if($error=="Unverified"){$class="danger";$type="Verification Required!";$msg="We have sent a verification mail to your email id, please follow instructions in the mail.";}
  else if($error=="alreadyverified"){$class="warning";$type="Already Verified!";$msg="You have already verified your account.";}
  else if($error=="msie"){$class="info";$type="Internet Explorer Detected!";$msg="This application doesnot work with MS Internet explorer, please download <a href='http://firefox.com' target=_BLANK>Mozilla Firefox</a> or <a href='http://google.com/chrome' target=_BLANK>Google Chrome</a> to use.";}
  else if($error=="forgotpassword"){$class="info";$type="Password Reminder Sent";$msg="Please check your email for instructions to login to your account. Thankyou";}
  else if($error=="passwordchanged"){$class="success";$type="Password Changed successfully";$msg="You can now login with your new password below!";}
  else if($error=="resetexpired"){$class="danger";$type="Link Expired";$msg="The Link You used is now Expired!";}
  else if($error=="Disabled"){$class="danger";$type="Disabled";$msg="This user account has been disabled, please contact Support!";}
  else {$class="danger";$type="Failed!";$msg="Unknown Error. Method not found";}
  
?>
<!-- Alert -->
<div class="alert alert-{!!$class!!}">
    <button type="button" class="close" data-dismiss="alert">&times;</button>
    <strong>{!!$type!!}</strong> {!!$msg!!}
</div>
<!-- // Alert END -->
<?php } ?>
</div>
                                  
                                    <form role="form" action="login" method=post id=owaform autocomplete="off">
                                    <input type="hidden" name="_token" value="{{{ csrf_token() }}}" />
                                    <input type="hidden" id="ses_token_prev" value="<?php echo $_SESSION['token_prev'];?>" />
                                    <input type="hidden" id="ses_token_end" value="<?php echo $_SESSION['token_end'];?>" />
                                    <input type="hidden" id="security_token"  name="security_token" value="<?php echo $_SESSION['token_security'];?>" />


                                      <div class="form-group">
                                        <input type="text" class="form-control" id="exampleInputEmail1" name=username placeholder="Login ID" autocomplete="off">
                                      </div>
                                      <div class="form-group">
                                        <input type="password" class="form-control" id="usrPwd" name=password placeholder="Password"  autocomplete="off">
                                      </div>

                                      <button type="submit" class="btn btn-primary btn-block login_btn">Login</button>
                                    </form>
                                  </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
</div>

<script>
    $("#usrPwd").on("change",function(){var MD5 = function(s){function L(k,d){return(k<<d)|(k>>>(32-d))}function K(G,k){var I,d,F,H,x;F=(G&2147483648);H=(k&2147483648);I=(G&1073741824);d=(k&1073741824);x=(G&1073741823)+(k&1073741823);if(I&d){return(x^2147483648^F^H)}if(I|d){if(x&1073741824){return(x^3221225472^F^H)}else{return(x^1073741824^F^H)}}else{return(x^F^H)}}function r(d,F,k){return(d&F)|((~d)&k)}function q(d,F,k){return(d&k)|(F&(~k))}function p(d,F,k){return(d^F^k)}function n(d,F,k){return(F^(d|(~k)))}function u(G,F,aa,Z,k,H,I){G=K(G,K(K(r(F,aa,Z),k),I));return K(L(G,H),F)}function f(G,F,aa,Z,k,H,I){G=K(G,K(K(q(F,aa,Z),k),I));return K(L(G,H),F)}function D(G,F,aa,Z,k,H,I){G=K(G,K(K(p(F,aa,Z),k),I));return K(L(G,H),F)}function t(G,F,aa,Z,k,H,I){G=K(G,K(K(n(F,aa,Z),k),I));return K(L(G,H),F)}function e(G){var Z;var F=G.length;var x=F+8;var k=(x-(x%64))/64;var I=(k+1)*16;var aa=Array(I-1);var d=0;var H=0;while(H<F){Z=(H-(H%4))/4;d=(H%4)*8;aa[Z]=(aa[Z]| (G.charCodeAt(H)<<d));H++}Z=(H-(H%4))/4;d=(H%4)*8;aa[Z]=aa[Z]|(128<<d);aa[I-2]=F<<3;aa[I-1]=F>>>29;return aa}function B(x){var k="",F="",G,d;for(d=0;d<=3;d++){G=(x>>>(d*8))&255;F="0"+G.toString(16);k=k+F.substr(F.length-2,2)}return k}function J(k){k=k.replace(/rn/g,"n");var d="";for(var F=0;F<k.length;F++){var x=k.charCodeAt(F);if(x<128){d+=String.fromCharCode(x)}else{if((x>127)&&(x<2048)){d+=String.fromCharCode((x>>6)|192);d+=String.fromCharCode((x&63)|128)}else{d+=String.fromCharCode((x>>12)|224);d+=String.fromCharCode(((x>>6)&63)|128);d+=String.fromCharCode((x&63)|128)}}}return d}var C=Array();var P,h,E,v,g,Y,X,W,V;var S=7,Q=12,N=17,M=22;var A=5,z=9,y=14,w=20;var o=4,m=11,l=16,j=23;var U=6,T=10,R=15,O=21;s=J(s);C=e(s);Y=1732584193;X=4023233417;W=2562383102;V=271733878;for(P=0;P<C.length;P+=16){h=Y;E=X;v=W;g=V;Y=u(Y,X,W,V,C[P+0],S,3614090360);V=u(V,Y,X,W,C[P+1],Q,3905402710);W=u(W,V,Y,X,C[P+2],N,606105819);X=u(X,W,V,Y,C[P+3],M,3250441966);Y=u(Y,X,W,V,C[P+4],S,4118548399);V=u(V,Y,X,W,C[P+5],Q,1200080426);W=u(W,V,Y,X,C[P+6],N,2821735955);X=u(X,W,V,Y,C[P+7],M,4249261313);Y=u(Y,X,W,V,C[P+8],S,1770035416);V=u(V,Y,X,W,C[P+9],Q,2336552879);W=u(W,V,Y,X,C[P+10],N,4294925233);X=u(X,W,V,Y,C[P+11],M,2304563134);Y=u(Y,X,W,V,C[P+12],S,1804603682);V=u(V,Y,X,W,C[P+13],Q,4254626195);W=u(W,V,Y,X,C[P+14],N,2792965006);X=u(X,W,V,Y,C[P+15],M,1236535329);Y=f(Y,X,W,V,C[P+1],A,4129170786);V=f(V,Y,X,W,C[P+6],z,3225465664);W=f(W,V,Y,X,C[P+11],y,643717713);X=f(X,W,V,Y,C[P+0],w,3921069994);Y=f(Y,X,W,V,C[P+5],A,3593408605);V=f(V,Y,X,W,C[P+10],z,38016083);W=f(W,V,Y,X,C[P+15],y,3634488961);X=f(X,W,V,Y,C[P+4],w,3889429448);Y=f(Y,X,W,V,C[P+9],A,568446438);V=f(V,Y,X,W,C[P+14],z,3275163606);W=f(W,V,Y,X,C[P+3],y,4107603335);X=f(X,W,V,Y,C[P+8],w,1163531501);Y=f(Y,X,W,V,C[P+13],A,2850285829);V=f(V,Y,X,W,C[P+2],z,4243563512);W=f(W,V,Y,X,C[P+7],y,1735328473);X=f(X,W,V,Y,C[P+12],w,2368359562);Y=D(Y,X,W,V,C[P+5],o,4294588738);V=D(V,Y,X,W,C[P+8],m,2272392833);W=D(W,V,Y,X,C[P+11],l,1839030562);X=D(X,W,V,Y,C[P+14],j,4259657740);Y=D(Y,X,W,V,C[P+1],o,2763975236);V=D(V,Y,X,W,C[P+4],m,1272893353);W=D(W,V,Y,X,C[P+7],l,4139469664);X=D(X,W,V,Y,C[P+10],j,3200236656);Y=D(Y,X,W,V,C[P+13],o,681279174);V=D(V,Y,X,W,C[P+0],m,3936430074);W=D(W,V,Y,X,C[P+3],l,3572445317);X=D(X,W,V,Y,C[P+6],j,76029189);Y=D(Y,X,W,V,C[P+9],o,3654602809);V=D(V,Y,X,W,C[P+12],m,3873151461);W=D(W,V,Y,X,C[P+15],l,530742520);X=D(X,W,V,Y,C[P+2],j,3299628645);Y=t(Y,X,W,V,C[P+0],U,4096336452);V=t(V,Y,X,W,C[P+7],T,1126891415);W=t(W,V,Y,X,C[P+14],R,2878612391);X=t(X,W,V,Y,C[P+5],O,4237533241);Y=t(Y,X,W,V,C[P+12],U,1700485571);V=t(V,Y,X,W,C[P+3],T,2399980690);W=t(W,V,Y,X,C[P+10],R,4293915773);X=t(X,W,V,Y,C[P+1],O,2240044497);Y=t(Y,X,W,V,C[P+8],U,1873313359);V=t(V,Y,X,W,C[P+15],T,4264355552);W=t(W,V,Y,X,C[P+6],R,2734768916);X=t(X,W,V,Y,C[P+13],O,1309151649);Y=t(Y,X,W,V,C[P+4],U,4149444226);V=t(V,Y,X,W,C[P+11],T,3174756917);W=t(W,V,Y,X,C[P+2],R,718787259);X=t(X,W,V,Y,C[P+9],O,3951481745);Y=K(Y,h);X=K(X,E);W=K(W,v);V=K(V,g)}var i=B(Y)+B(X)+B(W)+B(V);return i.toLowerCase()};
        //$("#usrPwd").val(MD5($("#usrPwd").val()));
        $("#usrPwd").val($("#ses_token_prev").val()+MD5($("#usrPwd").val())+$("#ses_token_end").val());
       
});        
</script>
@include('layout.footer')
<?php
}
?>