前几天装了一下stf环境 ,mac环境搭建stf
环境搭建还是比较简单的。这个平台登陆的时候是没有限制的,只要输入个名称和邮箱就可以登陆。打算修改一下,改成公司内部账号登陆,下面来撸一撸代码。
这张图片是在网上找的,根据这个区分出来了前端和后端代码。
stf前端使用的是angularjs语言开发的(测试小白,以前没有听过?),后端是nodejs(对于使用Java的我来说,这两个语言有点懵)没办法现学现卖,先去看看基本语法,然后在结合stf源码慢慢啃吧。
打开stf地址是http://192.168.110.18:7100/auth/mock/
在res路径下面找到了前端代码,修改.pug文件可以改变前端页面渲染。
先打开signin.pug把邮箱和name换一下,把name输入框换成password输入框。
.login2(ng-controller='SignInCtrl')
.login-wrapper
a(href='./')
img(width='200', height='85', src='/static/logo/exports/STF-512.png', title='STF')
form(name='signin', novalidate, ng-submit='submit()')
.alert.alert-danger(ng-show='error')
span(ng-show='error.$invalid', translate) Check errors below
span(ng-show='error.$incorrect', translate) Incorrect login details
span(ng-show='error.$server', translate) Server error. Check log output.
.form-group
.input-group
span.input-group-addon
i.fa.fa-envelope
input.form-control(ng-model='email', name='email', required, type='email', placeholder='E-mail',
autocorrect='off', autocapitalize='off', spellcheck='false', autocomplete='section-login email')
.alert.alert-warning(ng-show='signin.email.$dirty && signin.email.$invalid')
span(ng-show='signin.email.$error.email', translate) Please enter a valid email
span(ng-show='signin.email.$error.required', translate) Please enter your email
.form-group
.input-group
span.input-group-addon
i.fa.fa-user
input.form-control(ng-model='pwd', name='pwd', required, type='password', placeholder='Password',
autocorrect='off', autocapitalize='off', spellcheck='false', autocomplete='section-login username')
.alert.alert-warning(ng-show='signin.pwd.$dirty && signin.pwd.$invalid')
span(translate) Please enter your password
input.btn.btn-lg.btn-primary.btn-block(type='submit', value='Log In')
再找到前端控制器signin-controller.js,修改之前的name为pwd
module.exports = function SignInCtrl($scope, $http) {
$scope.error = null
//获取前端页面提交的用户名和email
$scope.submit = function() {
var data = {
pwd: $scope.signin.pwd.$modelValue //这里是修改过的
, email: $scope.signin.email.$modelValue //这里是修改过的
}
$scope.invalid = false
//发送用户名和邮箱给后端
$http.post('/auth/api/v1/mock', data)
.success(function(response) {
$scope.error = null
//后端返回成功后,重定向页面
location.replace(response.redirect)
})
.error(function(response) {
switch (response.error) {
case 'ValidationError':
$scope.error = {
$invalid: true
}
break
case 'InvalidCredentialsError':
$scope.error = {
$incorrect: true
}
break
default:
$scope.error = {
$server: true
}
break
}
})
}
}
再找到后端登录接口,打开mock.js
var http = require('http')
var express = require('express')
var validator = require('express-validator')
var cookieSession = require('cookie-session')
var bodyParser = require('body-parser')
var serveStatic = require('serve-static')
var csrf = require('csurf')