Session box插件,实现网页多账号登录

1537426835106602.png SessionBox


在WEB开发中,服务器可以为每个用户的浏览器创建一个会话对象(session对象)。


在需要保存用户数据时,服务器程序可以把用户数据写到浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中取出该用户的数据。


也就是说,这是一种可以保存网页登录状态的技术。


1537427275359251.jpg


但在实际上网过程中,人们可能会在同一网站使用到多个账号。


特别是在社交网络里,几乎每个人都有小号的情况下,切换账号的操作是非常繁琐的——先退出原有账号,再输入新帐号及密码。


对于新媒体从业者来说,一天需要操作的账号甚至是数十个。


所以,今天我们将为大家推荐一款可以快速切换session的Chrome扩展


1537427426394838.jpg


SessionBox可以帮助用户快速地在多个session中进行切换,也就是说,在网页的登录状态中无缝地切换帐号。


点击扩展按钮,就可以看到当前网站上已经保存的session。


1537427839376917.jpg


用户还可以对session列表进行分组,添加图标,更改颜色,以便查找。


1537427967589829.jpg


这样就能在同一网站中同时登录多个帐户,而无需备用浏览器。


如果登录SessionBox帐户后再使用,你保存的session还可以在其他设备上获得同步,甚至分享给其他人。


比如,在这里启动一个session,然后你也可以在任何其他浏览器中继续浏览。


SessionBox管理的数据不使用共享存储,变量通过扩展程序处理,因此在隐私保护方面还是可以放心的。


1537428457411161.jpg

文章来源:[https://www.extfans.com/articles/211/](https://www.extfans.com/articles/211/)
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这里给你一个简单的 Go 语言实现 session 的多用户登录的例子: ```go package main import ( "fmt" "net/http" "github.com/gorilla/sessions" ) type User struct { username string password string } var users = []User{ {"user1", "password1"}, {"user2", "password2"}, {"user3", "password3"}, } var store = sessions.NewCookieStore([]byte("secret")) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { // 获取 session session, err := store.Get(r, "session-name") if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } // 检查是否已经登录 if username, ok := session.Values["username"].(string); ok { fmt.Fprintf(w, "欢迎 %s 登录!", username) return } // 如果未登录,则显示登录界面 fmt.Fprint(w, ` <form method="POST" action="/login"> <label>用户名:</label> <input type="text" name="username"><br> <label>密码:</label> <input type="password" name="password"><br> <input type="submit" value="登录"> </form> `) }) http.HandleFunc("/login", func(w http.ResponseWriter, r *http.Request) { // 获取 session session, err := store.Get(r, "session-name") if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } // 获取表单数据 username := r.FormValue("username") password := r.FormValue("password") // 遍历用户列表,验证用户名和密码是否匹配 for _, user := range users { if user.username == username && user.password == password { // 登录成功,将用户名保存到 session 中,并跳转到首页 session.Values["username"] = username session.Save(r, w) http.Redirect(w, r, "/", http.StatusFound) return } } // 登录失败,重新显示登录界面 fmt.Fprint(w, ` <p>用户名或密码不正确,请重新登录。</p> <form method="POST" action="/login"> <label>用户名:</label> <input type="text" name="username"><br> <label>密码:</label> <input type="password" name="password"><br> <input type="submit" value="登录"> </form> `) }) http.ListenAndServe(":8080", nil) } ``` 以上代码使用了 Gorilla 的 sessions 包来实现 session 功能。在首页中,会先获取 session,然后检查是否已经登录,如果已经登录,则输出欢迎信息;否则显示登录界面。在登录接口中,会先获取表单数据,然后遍历用户列表,逐个验证用户名和密码是否匹配。如果登录成功,则将用户名保存到 session 中,并跳转到首页;否则重新显示登录界面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值