Feat: Login / Reg / Find pwd form

pull/141/head
HFO4 7 years ago
parent 74d0afb441
commit 76ea49890d

@ -82,13 +82,36 @@ class Member extends Controller{
$this->userObj->getMemory();
}
public function SignUp(){
$this->userObj = new User(cookie('user_id'),cookie('login_key'));
$this->isLoginStatusCheck();
return view('login', [
'options' => Option::getValues(['basic'],$this->userObj->userSQLData),
'RegOptions' => Option::getValues(['register','login']),
'loginStatus' => $this->userObj->loginStatus,
'pageId' => "register",
]);
}
public function FindPwd(){
$this->userObj = new User(cookie('user_id'),cookie('login_key'));
$this->isLoginStatusCheck();
return view('login', [
'options' => Option::getValues(['basic'],$this->userObj->userSQLData),
'RegOptions' => Option::getValues(['register','login']),
'loginStatus' => $this->userObj->loginStatus,
'pageId' => "resetPwd",
]);
}
public function LoginForm(){
$this->userObj = new User(cookie('user_id'),cookie('login_key'));
$this->isLoginStatusCheck();
return view('login', [
'options' => Option::getValues(['basic']),
'options' => Option::getValues(['basic'],$this->userObj->userSQLData),
'RegOptions' => Option::getValues(['register','login']),
'loginStatus' => $this->userObj->loginStatus,
'pageId' => "login",
]);
}
@ -114,10 +137,11 @@ class Member extends Controller{
public function TwoStep(){
$this->userObj = new User(cookie('user_id'),cookie('login_key'));
$this->isLoginStatusCheck();
return view('two_step', [
'options' => Option::getValues(['basic']),
return view('login', [
'options' => Option::getValues(['basic'],$this->userObj->userSQLData),
'RegOptions' => Option::getValues(['register','login']),
'loginStatus' => $this->userObj->loginStatus,
'pageId' => "TwoStep",
]);
}
@ -133,14 +157,16 @@ class Member extends Controller{
public function emailActivate(){
$activationKey = input('param.key');
$basicOptions = Option::getValues(['basic']);
$this->userObj = new User(cookie('user_id'),cookie('login_key'));
$this->isLoginStatusCheck();
$basicOptions = Option::getValues(['basic','register','login'],$this->userObj->userSQLData);
$activeAction = User::activicateUser($activationKey);
if($activeAction[0]){
return view('active_user', [
return view('login', [
'options' => $basicOptions,
'RegOptions' => $basicOptions,
'loginStatus' => $this->userObj->loginStatus,
'pageId' => "emailActivate",
]);
}else{
$this->error($activeAction[1],403,$basicOptions);
@ -150,15 +176,17 @@ class Member extends Controller{
public function resetPwd(){
$resetKey = input('param.key');
$userId = input('get.uid');
$basicOptions = Option::getValues(['basic']);
$this->userObj = new User(cookie('user_id'),cookie('login_key'));
$basicOptions = Option::getValues(['basic','register','login'],$this->userObj->userSQLData);
$this->isLoginStatusCheck();
$resetAction = User::resetUser($resetKey,$userId);
if($resetAction[0]){
return view('reset_user', [
return view('login', [
'options' => $basicOptions,
'RegOptions' => $basicOptions,
'loginStatus' => $this->userObj->loginStatus,
'key' => $resetKey."_".$userId,
'pageId' => "resetPwdForm",
]);
}else{
$this->error($resetAction[1],403,$basicOptions);

@ -1,59 +0,0 @@
{extend name="header_public" /}
{block name="title"}注册成功- {$options.siteName}{/block}
{block name="content"}
<link rel="stylesheet" href="/static/css/login.css" />
<link rel="stylesheet" href="/static/css/photoswipe.css">
<link rel="stylesheet" href="/static/css/default-skin/default-skin.css">
<script src="/static/js/jquery.color.js"></script>
</head>
<body data-ma-header="teal">
<nav class="navbar navbar-inverse" >
<div class="container-fluid">
<div class="container" >
{include file="navbar_public" loginStatus=$loginStatus userData=$userData /}
<div class="header-panel shadow-z-2">
<div class="container-fluid">
<div class="row">
</div>
</div>
</div>
<div class="container main" >
<div class="col-md-4"></div>
<div class="col-md-4">
<div class="jumbotron" >
<div class="card_top">
<div class="row top-color">
<div class="card-top-row">
<div class="login-icon"><i class="fa fa-check" aria-hidden="true"></i></div>
<div class="login-text">注册成功</div>
</div>
</div>
</div>
<div class="card_botom">
<div class="row bottom-width">
<br>
您已成功激活账号。<br><br>
<a class="btn btn-raised btn-primary" href="/Login">立即登录</a>
</div>
</div>
</div>
</div>
</div></div>
<div class="col-md-4"></div>
</div>
</div>
</body>
<script type="text/javascript">
</script>
<script src="/static/js/two_step.js"> </script>
{$options.js_code}
{/block}

@ -1,185 +1,75 @@
{extend name="header_public" /}
{block name="title"}登录- {$options.siteName}{/block}
{block name="content"}
<link rel="stylesheet" href="/static/css/login.css" />
<link rel="stylesheet" href="/static/css/photoswipe.css">
<link rel="stylesheet" href="/static/css/default-skin/default-skin.css">
<script src="/static/js/jquery.color.js"></script>
</head>
<body data-ma-header="teal">
<nav class="navbar navbar-inverse" >
<div class="container-fluid">
<div class="container" >
{include file="navbar_public" loginStatus=$loginStatus userData=$userData /}
<div class="header-panel shadow-z-2">
<div class="container-fluid">
<div class="row">
</div>
</div>
</div>
<div class="container main" >
<div class="col-md-4"></div>
<div class="col-md-4">
<div class="jumbotron" id="logForm">
<div class="card_top">
<div class="row top-color">
<div class="card-top-row">
<div class="login-icon"><i class="fa fa-user-circle-o" aria-hidden="true"></i></div>
<div class="login-text">登录后方可享用精彩内容</div>
</div>
</div>
</div>
<div class="card_botom">
<div class="row bottom-width">
<form id="loginForm">
<div class="form-group label-floating">
<label class="control-label" for="inputEmail">Email 电子邮箱</label>
<input type="text" class="form-control" id="inputEmail" name="userMail">
</div>
<div class="form-group label-floating">
<label class="control-label" for="inputPwd">密码</label>
<input type="password" class="form-control" id="inputPwd" name="userPass">
</div>
{eq name="$RegOptions.login_captcha" value="1"}
<div class="input-group form-group label-floating">
<label class="control-label" for="captcha">验证码</label>
<input type="text" id="captcha" class="form-control" name="captchaCode">
<span class="input-group-btn">
<div class="captcha_img">{:captcha_img()}</div>
</span>
</div>
{else/}
{/eq}
</form> <button class="btn btn-raised btn-primary waves-light" id="loginButton">登录</button>
<div class="link-group">
<a href="javascript:void" class="noWave" id="create" data-change="true">创建一个账户</a><br>
<a href="javascript:void" class="noWave" id="forgetSwitch2" data-change="true">忘记密码?</a>
</div>
</div>
</div>
</div>
<div class="jumbotron" id="regForm" style="display: none;">
<div class="card_top">
<div class="row top-color">
<div class="card-top-row">
<div class="login-icon"><i class="fa fa-sign-in" aria-hidden="true"></i></div>
<div class="login-text">注册账户</div>
</div>
</div>
</div>
<div class="card_botom">
<div class="row bottom-width">
<form id="registerForm">
<div class="form-group label-floating">
<label class="control-label" for="inputEmail">Email 电子邮箱</label>
<input type="text" class="form-control" id="inputEmail" name="username-reg">
</div>
<div class="form-group label-floating">
<label class="control-label" for="inputPwd">密码</label>
<input type="password" class="form-control" id="inputPwd" name="password-reg">
</div>
<div class="form-group label-floating">
<label class="control-label" for="inputPwd">重复密码</label>
<input type="password" class="form-control" id="inputPwd" name="password-check">
</div>
{eq name="$RegOptions.reg_captcha" value="1"}
<div class="input-group form-group label-floating">
<label class="control-label" for="captcha">验证码</label>
<input type="text" id="captcha" class="form-control" name="captchaCode">
<span class="input-group-btn">
<div class="captcha_img">{:captcha_img()}</div>
</span>
</div>
{else/}
{/eq}
</form> <button class="btn btn-raised btn-primary waves-light" id="regButton">注册</button> <div class="link-group">
<a href="javascript:void" class="noWave" id="loginSwitch3" data-change="true">已有账号?立即登录</a><br>
<a href="javascript:void" class="noWave" id="forgetSwitch" data-change="true">忘记密码?</a>
</div>
</div>
</div>
</div>
<div class="jumbotron" id="emailCheck" style="display: none;">
<div class="card_top">
<div class="row top-color">
<div class="card-top-row">
<div class="login-icon"><i class="fa fa-envelope" aria-hidden="true"></i></div>
<div class="login-text">激活账户</div>
</div>
</div>
</div>
<div class="card_botom">
<div class="row bottom-width"><br>
我们已经向您的注册邮箱发送了一封确认邮件,请访问邮件中的激活链接以完成注册。如果未收到邮件,请检查您的垃圾邮件。<br><br>如果还仍无法接受邮件,请尝试更换注册邮箱或联系站点管理员。
</div>
</div>
</div>
<div class="jumbotron" id="forgetForm" style="display: none;">
<div class="card_top">
<div class="row top-color">
<div class="card-top-row">
<div class="login-icon"><i class="fa fa-question-circle-o" aria-hidden="true"></i></div>
<div class="login-text">找回密码</div>
</div>
</div>
</div>
<div class="card_botom">
<div class="row bottom-width">
<form id="forgetPwdForm">
<div class="form-group label-floating">
<label class="control-label" for="inputEmail">请填写注册时绑定的邮箱</label>
<input type="text" class="form-control" id="regEmail" name="regEmail">
</div>
{eq name="$RegOptions.forget_captcha" value="1"}
<div class="input-group form-group label-floating">
<label class="control-label" for="captcha">验证码</label>
<input type="text" id="captcha" class="form-control" name="captchaCode">
<span class="input-group-btn">
<div class="captcha_img">{:captcha_img()}</div>
</span>
</div>
{else/}
{/eq}
</form> <button class="btn btn-raised btn-primary waves-light" id="findMyFuckingPwd">找回密码</button> <div class="link-group">
<a href="javascript:void" class="noWave" id="loginSwitch2" data-change="true">返回登录</a><br>
</div>
</div>
</div>
</div>
</div></div>
<div class="col-md-4"></div>
</div>
</div>
</body>
<script type="text/javascript">
</script>
<script src="/static/js/login.js"> </script>
{$options.js_code}
{/block}
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<link rel="shortcut icon" href="/favicon.ico">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="theme-color" content="{$options.themeColor}" />
<!--
manifest.json provides metadata used when your web app is added to the
homescreen on Android. See https://developers.google.com/web/fundamentals/web-app-manifest/
-->
<link rel="manifest" href="/manifest.json">
<!--
Notice the use of %PUBLIC_URL% in the tags above.
It will be replaced with the URL of the `public` folder during the build.
Only files inside the `public` folder can be referenced from the HTML.
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
work correctly both with client-side routing and a non-root public URL.
Learn how to configure a non-root public URL by running `npm run build`.
-->
<title>{eq name="pageId" value="resetPwdForm"}找回密码{/eq}{eq name="pageId" value="resetPwd"}找回密码{/eq}{eq name="pageId" value="emailActivate"}激活成功{/eq}{eq name="pageId" value="login"}登录{/eq}{eq name="pageId" value="register"}注册{/eq}{eq name="pageId" value="TwoStep"}二步验证{/eq} - {$options.siteName}</title>
<script type="text/javascript">
colorTheme = {:json_encode($options["themeConfig"])};
isHomePage = false;
isSharePage = false;
captcha = "{$RegOptions.login_captcha}";
regCaptcha = "{$RegOptions.reg_captcha}";
findPwdCaptcha = "{$RegOptions.forget_captcha}";
{if isset($key)}
resetKey = '{$key}';
{/if}
pageId="{$pageId}";
userInfo = {
uid: -1,
};
siteInfo = {
mainTitle: "{$options.siteName}",
};
uploadConfig = {
allowSource: false,
allowShare: false,
allowRemoteDownload: "0",
allowTorrentDownload: "0",
};
isMobile = window.innerWidth < 600;
</script>
</head>
<body>
<noscript>
You need to enable JavaScript to run this app.
</noscript>
<div id="root"></div>
<!--
This HTML file is a template.
If you open it directly in the browser, you will see an empty page.
You can add webfonts, meta tags, or analytics to this file.
The build step will place the bundled scripts into the <body> tag.
To begin the development, run `npm start` or `yarn start`.
To create a production bundle, use `npm run build` or `yarn build`.
-->
</body>
<script src="http://127.0.0.1:3000/static/js/runtime~login.bundle.js"></script>
<script src="http://127.0.0.1:3000/static/js/0.chunk.js"></script>
<script src="http://127.0.0.1:3000/static/js/2.chunk.js"></script>
<script src="http://127.0.0.1:3000/static/js/33.chunk.js"></script>
<script src="http://127.0.0.1:3000/static/js/1.chunk.js"></script>
<script src="http://127.0.0.1:3000/static/js/login.chunk.js"></script>
</html>

@ -1,122 +0,0 @@
{extend name="header_public" /}
{block name="title"}登录- {$options.siteName}{/block}
{block name="content"}
<link rel="stylesheet" href="/static/css/login.css" />
<link rel="stylesheet" href="/static/css/photoswipe.css">
<link rel="stylesheet" href="/static/css/default-skin/default-skin.css">
<script src="/static/js/jquery.color.js"></script>
</head>
<body data-ma-header="teal">
<nav class="navbar navbar-inverse" >
<div class="container-fluid">
<div class="container" >
{include file="navbar_public" loginStatus=$loginStatus userData=$userData /}
<div class="header-panel shadow-z-2">
<div class="container-fluid">
<div class="row">
</div>
</div>
</div>
<div class="container main" >
<div class="col-md-4"></div>
<div class="col-md-4">
<div class="jumbotron" id="logForm">
<div class="card_top">
<div class="row top-color">
<div class="card-top-row">
<div class="login-icon"><i class="fa fa-user-circle-o" aria-hidden="true"></i></div>
<div class="login-text">登录后方可享用精彩内容</div>
</div>
</div>
</div>
<div class="card_botom">
<div class="row bottom-width">
<form id="loginForm">
<div class="form-group label-floating">
<label class="control-label" for="inputEmail">Email 电子邮箱</label>
<input type="text" class="form-control" id="inputEmail" name="userMail">
</div>
<div class="form-group label-floating">
<label class="control-label" for="inputPwd">密码</label>
<input type="password" class="form-control" id="inputPwd" name="userPass">
</div>
{eq name="$RegOptions.login_captcha" value="1"}
<div class="input-group form-group label-floating">
<label class="control-label" for="captcha">验证码</label>
<input type="text" id="captcha" class="form-control" name="captchaCode">
<span class="input-group-btn">
<div class="captcha_img">{:captcha_img()}</div>
</span>
</div>
{else/}
{/eq}
</form> <button class="btn btn-raised btn-primary" id="loginButton">登录</button> <button class="btn btn-raised btn-info" ><i class="fa fa-qq" aria-hidden="true"></i> 使用QQ账号登录</button><div class="link-group">
<a href="#" class="noWave">创建一个账户</a><br>
<a href="#" class="noWave">忘记密码?</a>
</div>
</div>
</div>
</div>
<div class="jumbotron" id="regForm">
<div class="card_top">
<div class="row top-color">
<div class="card-top-row">
<div class="login-icon"><i class="fa fa-user-circle-o" aria-hidden="true"></i></div>
<div class="login-text">登录后方可享用精彩内容</div>
</div>
</div>
</div>
<div class="card_botom">
<div class="row bottom-width">
<form id="loginForm">
<div class="form-group label-floating">
<label class="control-label" for="inputEmail">Email 电子邮箱</label>
<input type="text" class="form-control" id="inputEmail" name="userMail">
</div>
<div class="form-group label-floating">
<label class="control-label" for="inputPwd">密码</label>
<input type="password" class="form-control" id="inputPwd" name="userPass">
</div>
{eq name="$RegOptions.login_captcha" value="1"}
<div class="input-group form-group label-floating">
<label class="control-label" for="captcha">验证码</label>
<input type="text" id="captcha" class="form-control" name="captchaCode">
<span class="input-group-btn">
<div class="captcha_img">{:captcha_img()}</div>
</span>
</div>
{else/}
{/eq}
</form> <button class="btn btn-raised btn-primary" id="loginButton">登录</button> <button class="btn btn-raised btn-info" ><i class="fa fa-qq" aria-hidden="true"></i> 使用QQ账号登录</button><div class="link-group">
<a href="#" class="noWave">创建一个账户</a><br>
<a href="#" class="noWave">忘记密码?</a>
</div>
</div>
</div>
</div>
</div></div>
<div class="col-md-4"></div>
</div>
</div>
</body>
<script type="text/javascript">
</script>
<script src="/static/js/login_bind.js"> </script>
{$options.js_code}
{/block}

@ -1,70 +0,0 @@
{extend name="header_public" /}
{block name="title"}密码重置- {$options.siteName}{/block}
{block name="content"}
<link rel="stylesheet" href="/static/css/login.css" />
<link rel="stylesheet" href="/static/css/photoswipe.css">
<link rel="stylesheet" href="/static/css/default-skin/default-skin.css">
<script src="/static/js/jquery.color.js"></script>
</head>
<body data-ma-header="teal">
<nav class="navbar navbar-inverse" >
<div class="container-fluid">
<div class="container" >
{include file="navbar_public" loginStatus=$loginStatus userData=$userData /}
<div class="header-panel shadow-z-2">
<div class="container-fluid">
<div class="row">
</div>
</div>
</div>
<div class="container main" >
<div class="col-md-4"></div>
<div class="col-md-4">
<div class="jumbotron" >
<div class="card_top">
<div class="row top-color">
<div class="card-top-row">
<div class="login-icon"><i class="fa fa-id-card-o" aria-hidden="true"></i></div>
<div class="login-text">密码重置</div>
</div>
</div>
</div>
<div class="card_botom">
<div class="row bottom-width">
<form id="resetForm">
<div class="form-group label-floating">
<label class="control-label" for="inputPwd">请输入新密码</label>
<input type="password" class="form-control" id="inputPwd" name="password-reg">
</div>
<div class="form-group label-floating">
<label class="control-label" for="inputPwd">重复密码</label>
<input type="password" class="form-control" id="inputPwd" name="password-check">
</div>
<input type="text" style="display:none" class="form-control" id="resetKey" name="key" value="{$key}">
</form> <button class="btn btn-raised btn-primary" id="regButton">重设密码</button>
</div>
</div>
</div>
</div>
</div></div>
<div class="col-md-4"></div>
</div>
</div>
</body>
<script type="text/javascript">
</script>
<script src="/static/js/reset.js"> </script>
{$options.js_code}
{/block}

@ -1,66 +0,0 @@
{extend name="header_public" /}
{block name="title"}两步验证- {$options.siteName}{/block}
{block name="content"}
<link rel="stylesheet" href="/static/css/login.css" />
<link rel="stylesheet" href="/static/css/photoswipe.css">
<link rel="stylesheet" href="/static/css/default-skin/default-skin.css">
<script src="/static/js/jquery.color.js"></script>
</head>
<body data-ma-header="teal">
<nav class="navbar navbar-inverse" >
<div class="container-fluid">
<div class="container" >
{include file="navbar_public" loginStatus=$loginStatus userData=$userData /}
<div class="header-panel shadow-z-2">
<div class="container-fluid">
<div class="row">
</div>
</div>
</div>
<div class="container main" >
<div class="col-md-4"></div>
<div class="col-md-4">
<div class="jumbotron" >
<div class="card_top">
<div class="row top-color">
<div class="card-top-row">
<div class="login-icon"><i class="fa fa-lock" aria-hidden="true"></i></div>
<div class="login-text">由于您开启了两步验证请输入您的两步验证APP上显示的验证码</div>
</div>
</div>
</div>
<div class="card_botom">
<div class="row bottom-width">
<form id="loginForm">
<div class="form-group label-floating">
<label class="control-label" for="inputEmail">验证码</label>
<input type="text" class="form-control" id="inputEmail" name="code">
</div>
</form> <button class="btn btn-raised btn-primary" id="loginButton">继续登录</button>
<br>如果您丢失了两步验证秘钥,请联系站点管理员核验身份后取消二步验证。
</div>
</div>
</div>
</div>
</div></div>
<div class="col-md-4"></div>
</div>
</div>
</body>
<script type="text/javascript">
</script>
<script src="/static/js/two_step.js"> </script>
{$options.js_code}
{/block}

@ -17,6 +17,7 @@ Route::rule([
'Share/Preview/:key'=>'index/Share/Preview',
'Share/ListFile/:key'=>'index/Share/ListFile',
'Login'=>'index/Member/LoginForm',
'SignUp'=>'index/Member/SignUp',
'Member/emailActivate/:key'=>'index/Member/emailActivate',
'Member/resetPwd/:key'=>'index/Member/resetPwd',
'Callback/Payment/Jinshajiang' => 'index/Callback/Jinshajiang',

Loading…
Cancel
Save