请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

4-3章节做完无法登录

图片描述

做到4-3章节,从charater4源码种把static替换我的源码种仍然存在图中问题。
上个问题也没好好回答?收费就是买个视频,不帮忙回答问题?
4-3章节源码种登录成功后返回是的body是“http://192.168.3.29:8080/static/view/home.html”,但是实际上/signin.html文件要求 body是json格式且包含token,username,location,才对。
你这个教程为什么不在每个课时后面附上 “正确对应的static文件” !!!!,还要让别人去猜?
收费课程也要用心做啊?!

正在回答 回答被采纳积分+3

2回答

xiaomo 2021-03-05 01:00:06

同学你好,可参考git源码中登录接口逻辑,返回的是json数据(https://git.imooc.com/coding-323/filestore-server/src/charter4/handler/user.go):

func SignInHandler(w http.ResponseWriter, r *http.Request) {
	if r.Method == http.MethodGet {
		// data, err := ioutil.ReadFile("./static/view/signin.html")
		// if err != nil {
		// 	w.WriteHeader(http.StatusInternalServerError)
		// 	return
		// }
		// w.Write(data)
		http.Redirect(w, r, "/static/view/signin.html", http.StatusFound)
		return
	}

	r.ParseForm()
	username := r.Form.Get("username")
	password := r.Form.Get("password")

	encPasswd := util.Sha1([]byte(password + pwdSalt))

	// 1. 校验用户名及密码
	pwdChecked := dblayer.UserSignin(username, encPasswd)
	if !pwdChecked {
		w.Write([]byte("FAILED"))
		return
	}

	// 2. 生成访问凭证(token)
	token := GenToken(username)
	upRes := dblayer.UpdateToken(username, token)
	if !upRes {
		w.Write([]byte("FAILED"))
		return
	}

	// 3. 登录成功后重定向到首页
	//w.Write([]byte("http://" + r.Host + "/static/view/home.html"))
	resp := util.RespMsg{
		Code: 0,
		Msg:  "OK",
		Data: struct {
			Location string
			Username string
			Token    string
		}{
			Location: "http://" + r.Host + "/static/view/home.html",
			Username: username,
			Token:    token,
		},
	}
	w.Write(resp.JSONBytes())
}


1 回复 有任何疑惑可以回复我~
xiaomo 2021-03-05 01:09:11

是这样的,视频中登录接口的返回值,在节选上线后的后续有做优化,视频4-3小节(大约04:23时间点)已加了瞄点说明。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号