You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
101 lines
3.1 KiB
101 lines
3.1 KiB
<% this.title = '登录' %> |
|
<% this.noPreserveUrl = true; %> |
|
<% include header %> |
|
<div class="ui error message" id="error" hidden></div> |
|
<div class="ui middle aligned center aligned grid"> |
|
<div class="row"> |
|
<div class="column" style="max-width: 450px"> |
|
<h2 class="ui image header"> |
|
<div class="content"> |
|
登录 |
|
</div> |
|
</h2> |
|
<form class="ui large form"> |
|
<div class="ui existing segment"> |
|
<div class="field"> |
|
<div class="ui left icon input"> |
|
<i class="user icon"></i> |
|
<input name="email" placeholder="用户名" type="text" id="username" onkeydown="key_login(event)"> |
|
</div> |
|
</div> |
|
<div class="field"> |
|
<div class="ui left icon input"> |
|
<i class="lock icon"></i> |
|
<input name="password" placeholder="密码" type="password" id="password" onkeydown="key_login(event)"> |
|
</div> |
|
</div> |
|
<div class="ui fluid large submit button" id="login">登录</div> |
|
</div> |
|
|
|
<div class="ui error message"></div> |
|
|
|
</form> |
|
|
|
<div class="ui message"> |
|
<a href="/sign_up">注册</a> |
|
<a href="<%= syzoj.utils.makeUrl(['forget']) %>">忘记密码</a> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
<script src="https://cdnjs.loli.net/ajax/libs/blueimp-md5/2.10.0/js/md5.min.js"></script> |
|
<script type="text/javascript"> |
|
function key_login(event) { |
|
if (event.keyCode == 13) { |
|
login(); |
|
} |
|
} |
|
function show_error(error) { |
|
$("#error").text(error); |
|
$("#error").show(); |
|
} |
|
function success(session_id) { |
|
window.location.href = location.protocol + '//' + location.host + <%- JSON.stringify(req.query.url || '/') %>; |
|
} |
|
function login() { |
|
password = md5($("#password").val() + "syzoj2_xxx"); |
|
$("#login").addClass("loading"); |
|
$.ajax({ |
|
url: "/api/login", |
|
type: 'POST', |
|
data: { |
|
"username": $("#username").val(), |
|
"password": password |
|
}, |
|
async: true, |
|
success: function(data) { |
|
error_code = data.error_code; |
|
switch (error_code) { |
|
case 1001: |
|
show_error("用户不存在"); |
|
break; |
|
case 1002: |
|
show_error("密码错误"); |
|
break; |
|
case 1003: |
|
show_error("您尚未设置密码,请通过下方「找回密码」来设置您的密码。"); |
|
break; |
|
case 1: |
|
success(data.session_id); |
|
return; |
|
default: |
|
show_error("未知错误"); |
|
break; |
|
} |
|
$("#login").text("登录"); |
|
$("#login").removeClass("loading"); |
|
}, |
|
error: function(XMLHttpRequest, textStatus, errorThrown) { |
|
alert(XMLHttpRequest.responseText); |
|
show_error("未知错误"); |
|
$("#login").text("登录"); |
|
} |
|
}); |
|
} |
|
$(document).ready(function() { |
|
$("#login").click(function() { |
|
login(); |
|
}); |
|
}); |
|
</script> |
|
<% include footer %>
|
|
|