如果可以记得采纳哦
需要查看JS,分析加密。一般密码每次都不一样,应该是加了时间戳在加密
首先,查看都加载了哪些JS,是否混淆,混淆也没事,只是读起来麻烦一些,只要用心还是可以的
http://www.imooc.com/passport/static/scripts/ssologin.js?v=2.0
首先看到这个JS,从文件名分析来看这个应该是单点登录所需要的js,所以应该最终登陆会在这里实现
继续往下看
http://www.imooc.com/static/page/user/newlogin.js?v=201612121925
发现这个JS,从文件名分析应该是登陆的,打开一看,发现是个配置文件性质的JS,这里配置了所需要加载的js
seajs.config({
paths:{
"cptbase":"/static/component" ,//componet base path
}
});
seajs.use(["cptbase/base/placeholder/placeholder.js",
"cptbase/base/autocomplete/autocomplete.js",
"cptbase/base/util/modal.button.js",
"cptbase/base/util/core.js",
"cptbase/base/util/validate.js",
"cptbase/base/qrcode/qrcode.min.js",
"cptbase/logic/login/login-view.js"],
function(){
var PageDocumentRow = Loginview.extend({
render: function() {
this.loginWithCode=false;
this.verifyLoad = false
$(".rl-modal").remove();
this.$el.append(this.dom);
this.$el.find('.pop-login-sns').removeClass("pop-login-sns").addClass('login-sns-wrap');
this.$el.find('.rl-modal-header').remove();
if(this.dom!==signinTpl) {
this.$el.find('.verify-img-wrap').append(
$('')
);
this.refreshVerifyCode();
}else{
this.$el.find('.js-verify-row').hide();
}
if(typeof(ownName) !== "undefined"){
$(".js-own-name").val(ownName)
var $node =$(".xa-emailOrPhone");
if($node.val()&&$node.val().indexOf("@")!=-1) {
$node.attr("data-validate","require-email");
}else{
$node.attr("data-validate","require-mobile-phone");
}
};
}
})
var view = new PageDocumentRow ({
el: $(".login-wrap"),});
view.render();
imoocSSO.preLogin({
error:function(){
setTimeout(imoocSSO.preLogin,2000);
}
});
});
从该文件分析猜测,这个项目前端是MVC结构,最终这个页面的控制器应该是login-view.js,查找这个文件
define(function(require, exports, module){
//require('./login-regist.css');
require("../../base/placeholder/placeholder.js");
require("../../base/util/modal.button.js");
require("../../base/util/validate_v2.js");
require("../../base/util/core.js");
require('../../base/autocomplete/autocomplete.js');
require('../../base/qrcode/qrcode.min.js');
require('./tpl/signup.js')
require('./tpl/signin.js')
require('./tpl/erweima.js')
require('./tpl/phoneVerity.js')
require('./tpl/registerFinished.js')
require('./tpl/email_RegisterFinished.js')
require('/static/lib/backbone/backbone-1.0.0.min.js');
Loginview = Backbone.View.extend({
initialize: function(options) {
this.verifyFinished = false;
this.options = options;
if(options&&options.mode=="signup"){
this.dom = signupTpl;
}else{
this.dom = signinTpl;
}
this.interval = null;
this.val = null;
this.loginWithCode = false;
this.verifyLoad = false;
this.IfPWDTypeChange = true;
var _this = this;
validateCallback['checkusername'] = function(value){
_this.blurToCheckUserName(value);
};
validateCallback['checkverity'] = function(value){
_this.checkverity(value);
}
},
events: {
"mousedown #signup-btn": "clickToSignup",
"click .js-verify-refresh": "clickToRefreshVerifyCode",
"click .xa-showSignup": "clickToShowSignup",
"click .xa-showSignin": "clickToShowSignin",
"mousedown .js-proclaim": "clickToProclaimCode",
"click .xa-showQrcode": "clickToShowQrcode",
"click .xa-hideQrcode": "clickToHideQrcode",
"click .xa-refresh": "clickToShowQrcode",
"keyup .xa-emailOrPhone": "keyupCheckEmailOrPhone",
"focus .xa-emailOrPhone": "focusautocomplete",
"focus input": "focusToHideError",
"blur .xa-emailOrPhone": "blurToTrim",
"click .js-reSend": "clickToresendPhoneCode",
"click .js-back": "clickToBack",
"click [data-login-sns]": "clickShowotherLogin",
"click .xa-endRegister": "clickToFinishedRegiter",
"mousedown .xa-submitePhoneVerity": "clickTosubmitePhoneVerity",
"click .xa-login": "clickToLogin",
"keyup .js-loginPassword": "keyupJudgeIfShwoVerity",
"keyup .js-loginWrap input": "keyupToTriggerLogin",
"keyup .js-registerWrap input": "keyupToTriggerRegister",
"keyup .js-phoneVerityWrap input": "keyupToTriggerSubmitePhoneVerity",
"click #js-gotoVerity": "clickToVerityEmail",
"click .js-gotoSetting": "clickTolink",
"keydown .ipt-verify" : "focusIfCanVertify",
},
focusIfCanVertify : function(){
console.log("change================")
this.verifyFinished = false;
},
keyupToTriggerLogin:function(e){
if(e.keyCode=="13"){
this.$el.find(".xa-login").trigger('click');
}
},
keyupToTriggerRegister:function(e){
if(e.keyCode=="13"){
this.$el.find("#signup-btn").trigger('mousedown');
}
},
keyupToTriggerSubmitePhoneVerity: function(e){
if(e.keyCode=="13"){
this.$el.find(".xa-submitePhoneVerity").trigger('mousedown');
}
},
keyupJudgeIfShwoVerity: function(){
if(!this.loginWithCode){
if(!this.verifyLoad){
this.verifyLoad = true;
var _this = this;
$.get( imoocSSO.checkVerifyUrl,"username="+$('[name="email"].ipt').val(), function(data){
if(data.status == 10001){
_this.showLoginVerify();
}
},"json");
}
}else{
this.showLoginVerify();
}
},
showLoginVerify:function(){
if( this.$el.find('.js-verify-row').css("display")=='none') {
this.$el.find('.js-verify-row').show();
this.$el.find('.verify-img-wrap').append(
$('')
);
}
this.refreshVerifyCode();
},
focusToHideError:function(){
$('.rlf-tip-globle').text('');
},
blurToTrim:function(event){
$(event.currentTarget).val($.trim( $(event.currentTarget).val()));
},
focusautocomplete: function(event){
$(event.currentTarget).autocomplete();
},
clickToSignin: function(){
},
clickShowotherLogin: function(event){
this.winsns.open($(event.currentTarget).attr("data-login-sns"));
},
keyupCheckEmailOrPhone: function(event){
var $node = $(event.currentTarget);
if($node.val().indexOf("@")!=-1) {
$node.attr("data-validate","require-email");
//$node.parent().find(".errorHint").attr("data-error-hint","邮箱格式错误");
this.$el.find(".xa-passwordWrap").show();
}else{
$node.attr("data-validate","require-mobile-phone");
//$node.parent().find(".errorHint").attr("data-error-hint","手机号格式错误");
this.$el.find(".xa-passwordWrap").hide();
}
},
math:function(){
var genericEmailLinks="sohu.com::http://mail.sohu.com \
|sina.com,sina.cn :: http://mail.sina.com \
|vip.sina.com :: http://vip.sina.com.cn \
|126.com :: http://www.126.com \
|163.com :: http://mail.163.com \
|vip.163.com :: http://vip.163.com \
|vip.126.com :: http://vip.126.com \
|qq.com,vip.qq.com :: http://mail.qq.com \
|msn.com,outlook.com,hotmail.com,live.cn,live.com :: http://outlook.com \
|gmail.com :: http://www.gmail