網(wǎng)站制作需求文檔seo研究中心道一老師
目錄
- 案例-登錄和認(rèn)證
- 1. 登錄功能
- 1.1 需求
- 1.2 接口文檔
- 1.3 思路分析
- 1.4 功能開發(fā)
- 1.5 測試
案例-登錄和認(rèn)證
在前面的課程中,我們已經(jīng)實現(xiàn)了部門管理、員工管理的基本功能,但是大家會發(fā)現(xiàn),我們并沒有登錄,就直接訪問到了Tlias智能學(xué)習(xí)輔助系統(tǒng)的后臺。 這是不安全的,所以我們今天的主題就是登錄認(rèn)證。 最終我們要實現(xiàn)的效果就是用戶必須登錄之后,才可以訪問后臺系統(tǒng)中的功能。
1. 登錄功能
1.1 需求
在登錄界面中,我們可以輸入用戶的用戶名以及密碼,然后點擊 “登錄” 按鈕就要請求服務(wù)器,服務(wù)端判斷用戶輸入的用戶名或者密碼是否正確。如果正確,則返回成功結(jié)果,前端跳轉(zhuǎn)至系統(tǒng)首頁面。
1.2 接口文檔
我們參照接口文檔來開發(fā)登錄功能
-
基本信息
請求路徑:/login請求方式:POST接口描述:該接口用于員工登錄Tlias智能學(xué)習(xí)輔助系統(tǒng),登錄完畢后,系統(tǒng)下發(fā)JWT令牌。
-
請求參數(shù)
參數(shù)格式:application/json
參數(shù)說明:
名稱 類型 是否必須 備注 username string 必須 用戶名 password string 必須 密碼 請求數(shù)據(jù)樣例:
{"username": "jinyong","password": "123456" }
-
響應(yīng)數(shù)據(jù)
參數(shù)格式:application/json
參數(shù)說明:
名稱 類型 是否必須 默認(rèn)值 備注 其他信息 code number 必須 響應(yīng)碼, 1 成功 ; 0 失敗 msg string 非必須 提示信息 data string 必須 返回的數(shù)據(jù) , jwt令牌 響應(yīng)數(shù)據(jù)樣例:
{"code": 1,"msg": "success","data": "eyJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoi6YeR5bq4IiwiaWQiOjEsInVzZXJuYW1lIjoiamlueW9uZyIsImV4cCI6MTY2MjIwNzA0OH0.KkUc_CXJZJ8Dd063eImx4H9Ojfrr6XMJ-yVzaWCVZCo" }
1.3 思路分析
登錄服務(wù)端的核心邏輯就是:接收前端請求傳遞的用戶名和密碼 ,然后再根據(jù)用戶名和密碼查詢用戶信息,如果用戶信息存在,則說明用戶輸入的用戶名和密碼正確。如果查詢到的用戶不存在,則說明用戶輸入的用戶名和密碼錯誤。
1.4 功能開發(fā)
LoginController
@RestController
public class LoginController {@Autowiredprivate EmpService empService;@PostMapping("/login")public Result login(@RequestBody Emp emp){Emp e = empService.login(emp);return e != null ? Result.success():Result.error("用戶名或密碼錯誤");}
}
EmpService
public interface EmpService {/*** 用戶登錄* @param emp* @return*/public Emp login(Emp emp);//省略其他代碼...
}
EmpServiceImpl
@Slf4j
@Service
public class EmpServiceImpl implements EmpService {@Autowiredprivate EmpMapper empMapper;@Overridepublic Emp login(Emp emp) {//調(diào)用dao層功能:登錄Emp loginEmp = empMapper.getByUsernameAndPassword(emp);//返回查詢結(jié)果給Controllerreturn loginEmp;} //省略其他代碼...
}
EmpMapper
@Mapper
public interface EmpMapper {@Select("select id, username, password, name, gender, image, job, entrydate, dept_id, create_time, update_time " +"from emp " +"where username=#{username} and password =#{password}")public Emp getByUsernameAndPassword(Emp emp);//省略其他代碼...
}
1.5 測試
功能開發(fā)完畢后,我們就可以啟動服務(wù),打開postman進(jìn)行測試了。
發(fā)起POST請求,訪問:http://localhost:8080/login
postman測試通過了,那接下來,我們就可以結(jié)合著前端工程進(jìn)行聯(lián)調(diào)測試。
先退出系統(tǒng),進(jìn)入到登錄頁面:
在登錄頁面輸入賬戶密碼:
登錄成功之后進(jìn)入到后臺管理系統(tǒng)頁面: