walinejs / waline

💬 A Simple, Safe Comment System
https://waline.js.org/en/
GNU General Public License v2.0
2.19k stars 379 forks source link

[BUG] 通过Github登录无法管理后台及登陆状态无法保持 #207

Closed ZvonimirSun closed 3 years ago

ZvonimirSun commented 3 years ago

问题描述 | Describe the bug

通过Github登录无法管理后台。通过密码登录可以正常管理评论;但如果登出后再通过Github登录,只能进入个人设置页,进入评论管理页面列表内容为空,且后台报无权限。

image

问题网站 | Website URL

https://wl.iszy.xyz

部署方式 | Deploy Type

lizheming commented 3 years ago

Github 登录是这样的,如果未登录状态下的话会给你新建一个账户,这样新用户不是管理员,所以你没有权限进入后台。解决的办法有两个:

  1. 进数据库 wl_User 表删除 Github 的账号,使用账号密码登录进去之后,进入个人资料页有账号绑定,这里选择 Github 登录后这样你的管理员账号就和你的 Github 账号关联起来了。
  2. 进数据库 wl_User 表修改你的 Github 账号的那条数据中的 type 字段值为 administrator 这样你可以拥有账密和 Github 两个管理员账号。
ZvonimirSun commented 3 years ago

就是我管理员账号绑定的Github,通过github方式登录的时候就没法进后台 image

huzhanfei commented 3 years ago

我也有相同的问题,用户类型为administrator,使用github登录后,无法管理评论,只能查看个人信息

lizheming commented 3 years ago

@waline/admin@0.8.9 已处理该问题,大家后台刷新下缓存应该可以了。

ZvonimirSun commented 3 years ago

@waline/admin@0.8.9 已处理该问题,大家后台刷新下缓存应该可以了。

经过验证,已经能够正常看到评论。不过发现了另外一个问题,通过Github方式登录,session storage没存token,只要一刷新就会跳登录。

lizheming commented 3 years ago

对,没有存 sessionStorage 里,目前存的全局变量里了。有想法的可以提个 PR,应该不难~

ZvonimirSun commented 3 years ago

欸,还没看过代码。不过我看用密码登陆的时候就是存在session storage里的欸,这样github登录方式就不能自动登录啦。

lizheming commented 3 years ago

目前是这样的,因为第三方登录需要跳转,跳转后丢失了那个是否保存登录的选项了,后面再考虑这块优化一下吧

lizheming commented 3 years ago

@waline/admin@0.8.10 发布,增加了 token 存到 session 的逻辑。