2 回答

TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊
Cookie 用于標(biāo)識(shí)會(huì)話或存儲(chǔ)會(huì)話數(shù)據(jù),具體取決于所使用的會(huì)話存儲(chǔ)。同一瀏覽器實(shí)例中的兩個(gè)隱身窗口共享相同的 Cookie,因此將共享相同的會(huì)話。請(qǐng)嘗試以下操作之一:比較不同瀏覽器實(shí)例中的會(huì)話(有關(guān)如何啟動(dòng)單獨(dú)的實(shí)例,請(qǐng)參閱瀏覽器命令行幫助),比較隱身和非隱身之間的會(huì)話,比較 Edge 和 Chrome 之間的會(huì)話。

TA貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊
會(huì)話變量包含多個(gè)數(shù)據(jù),包括會(huì)話開(kāi)始時(shí)間。興趣 確定會(huì)話的結(jié)束時(shí)間。這意味著會(huì)話令牌即使在同一瀏覽器和某些窗口上也有所不同。因?yàn)橥挥脩舨荒芡瑫r(shí)登錄多次。但是,所有瀏覽器仍然都知道這一點(diǎn)。因?yàn)樗鼮橥挥脩魯y帶相同的數(shù)據(jù),例如唯一的名稱或電子郵件。
sess,_ := session.Get ("session-name", c)用于會(huì)話類型。僅當(dāng)您有多種類型的會(huì)話時(shí),才動(dòng)態(tài)設(shè)置它。
sess.Values ["email"] = email用于查找誰(shuí)與用戶有關(guān)聯(lián)?這些必須動(dòng)態(tài)確定。它使用唯一值(如電子郵件或 Id)進(jìn)行設(shè)置??梢源鎯?chǔ)一系列數(shù)據(jù)來(lái)自定義用戶體驗(yàn)。例如:姓名、顏色、語(yǔ)言。他們建議不要存儲(chǔ)密碼。它加密敏感數(shù)據(jù)。設(shè)置前。
這是一個(gè)簡(jiǎn)單的大猩猩會(huì)話:
func initSession(c echo.Context, name, email string) {
sess, _ := session.Get("session-name", c) // session_name like: addmin_sess of user_ses or onything.
sess.Options = &sessions.Options{
Path: "/",
MaxAge: 216000, // = 1h,
HttpOnly: true, // no websocket or any protocol else
}
sess.Values["email"] = email // nessessary in this senario
sess.Save(c.Request(), c.Response())
}
func login(c echo.Context) error {
formEmail := c.FormValue("email")
formPass := c.FormValue("password")
email, pass := getUsername(formEmail) // "select email pass from UserTable where email_field == formEmail"
if pass == formPass && email == formEmail {
initSession(c, email) // set session of this uniq user in browser.
return c.Redirect(http.StatusSeeOther, "/") // login success.
}
return c.Render(200, "login.html", "Username or password is wrong")
}
用戶在未登錄的情況下無(wú)法訪問(wèn)<配置文件頁(yè)>:
func profilePage(c echo.Context) error {
sess, _ := session.Get("session_name", c)
email := sess.Values["email"] // we get email from browser.
if email == nil {
return c.Redirect(http.StatusSeeOther, "/login") // login firs.
}
return c.Render(200, "profile.html", email) // just show email
}
- 2 回答
- 0 關(guān)注
- 95 瀏覽
添加回答
舉報(bào)