0xDkd / auxpi

🍭 集合多家 API 的新一代图床
GNU General Public License v3.0
2.72k stars 368 forks source link

使用容器布署的服务无法登录 #93

Closed ylfzq closed 4 years ago

ylfzq commented 5 years ago

Question(提问)

首先,感谢作者开源这么优秀的项目。

我是使用docker方式布署的,是直接使用了这个image:ysicing/auxpi,命令是

docker run -d --name picture_bed -p 127.0.0.1:2333:2333 ysicing/auxpi

在容器外用nginx做了反代,外网可以正常访问到。但要登录的时候发现我并不知道管理员密码。我用docker logs picture_bed查看日志,下面是片断:

(/go/src/github.com/auxpi/models/users.go:294) 
[2019-10-16 19:00:05]  [0.44ms]  INSERT  INTO "auxpi_user" ("id","created_on","modified_on","deleted_on","created_day","username","password","is_admin","email","status","token","version","role_id") VALUES (1,1571223605,1571223605,0,'2019/10/16','admin','c4ddb470e75c9550d6e5899130fbd6a933b35d4d3efa9c03fa29b03cc5af9253',true,'auxpi@example.com',1,'5c0ddc9a7380d948768e2cc88adee24f2b252d9c756a2425da34143a363d666e',1,1)  
[1 rows affected or returned ] 
[INFO]: Create Admin SUCCESS

是可以看到管理员邮箱是:auxpi@example.com,但这密码应该是hash结果,所以我并不能在日志和数据库中查到。

尝试过使用:./auxpi -mod=admin -name=xxx -email=xxxx@xxx.com -pass=xxxx,但提示是已经有管理员账号,且只能有一个,ID也必须为1。

因为现在使用的数据库是sqlite,所以再次尝试,使用

docker exec -it picture_bed bash

进入容器,删除db目录下的数据库文件。然后执行:

./auxpi init

可以看到有WIKI中所说的输出:

   _       __  __  ___ _____
  /_\  /\ /\ \/ / / _ \\_   \
 //_\\/ / \ \  / / /_)/ / /\/
/  _  \ \_/ /  \/ ___/\/ /_
\_/ \_/\___/_/\_\/   \____/

🍭 A NEW API IMAGES STORE TOOL 🍭

[INFO]:AUXPI have already initialization complete.
[INFO]:Please run "./auxpi run"  to start 

再次调用./auxpi -mod=admin -name=xxx -email=xxxx@xxx.com -pass=xxxx,提示创建成功:

(/go/src/github.com/auxpi/models/users.go:294) 
[2019-10-16 19:01:37]  [0.13ms]  INSERT  INTO "auxpi_user" ("id","created_on","modified_on","deleted_on","created_day","username","password","is_admin","email","status","token","version","role_id") VALUES (1,1571223697,1571223697,0,'2019/10/16','xxx','1a702384f2c4debd2869963f5aacd438feb4087de3659104b40f8a80919e3ded',true,'xxxx@xxx.com',1,'a4c9ef6f611ce490fc96402b7120de0a61c95f418762d6f416afea392804ebe0',1,1)  
[0 rows affected or returned ] 
[INFO]: Create Admin SUCCESS

上面的日志中有修改邮箱、密码等敏感字段。

重启容器,nginx。网站能正常访问,但使用命令创建的账号和密码登录仍然提示账号或密码错误。使用找回密码功能,输入邮箱,提示邮箱不存在。

所以到现在为止,我无法正常登录我的网站

ylfzq commented 5 years ago

找了下源码,找到了默认的账号密码:

https://github.com/aimerforreimu/auxpi/blob/98fb8803d189236b35daf3c1cb179919c10ddc9a/hack/run/entrypoint.sh#L3-L5

作者是不是可以把这个更新到wiki上?

0xDkd commented 5 years ago

最近比较忙,您可以向 wiki 提交 pr