diff --git a/api/handler/user_handler.go b/api/handler/user_handler.go
index 490c833c..79f58417 100644
--- a/api/handler/user_handler.go
+++ b/api/handler/user_handler.go
@@ -80,14 +80,6 @@ func (h *UserHandler) Register(c *gin.Context) {
return
}
- // 默认订阅所有角色
- var chatRoles []model.ChatRole
- h.db.Find(&chatRoles)
- var roleKeys = make([]string, 0)
- for _, r := range chatRoles {
- roleKeys = append(roleKeys, r.Key)
- }
-
salt := utils.RandString(8)
user := model.User{
Password: utils.GenPassword(data.Password, salt),
@@ -95,7 +87,7 @@ func (h *UserHandler) Register(c *gin.Context) {
Salt: salt,
Status: true,
Mobile: data.Mobile,
- ChatRoles: utils.JsonEncode(roleKeys),
+ ChatRoles: utils.JsonEncode([]string{"gpt"}), // 默认只订阅通用助手角色
ChatConfig: utils.JsonEncode(types.UserChatConfig{
ApiKeys: map[types.Platform]string{
types.OpenAI: "",
@@ -116,7 +108,24 @@ func (h *UserHandler) Register(c *gin.Context) {
if h.App.SysConfig.EnabledMsg {
_ = h.leveldb.Delete(key) // 注册成功,删除短信验证码
}
- resp.SUCCESS(c, user)
+
+ // 自动登录创建 token
+ token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
+ "user_id": user.Id,
+ "expired": time.Now().Add(time.Second * time.Duration(h.App.Config.Session.MaxAge)).Unix(),
+ })
+ tokenString, err := token.SignedString([]byte(h.App.Config.Session.SecretKey))
+ if err != nil {
+ resp.ERROR(c, "Failed to generate token, "+err.Error())
+ return
+ }
+ // 保存到 redis
+ key = fmt.Sprintf("users/%d", user.Id)
+ if _, err := h.redis.Set(c, key, tokenString, 0).Result(); err != nil {
+ resp.ERROR(c, "error with save token: "+err.Error())
+ return
+ }
+ resp.SUCCESS(c, tokenString)
}
// Login 用户登录
diff --git a/web/src/assets/css/images-wall.css b/web/src/assets/css/images-wall.css
index 7bcfd395..fa02b1d8 100644
--- a/web/src/assets/css/images-wall.css
+++ b/web/src/assets/css/images-wall.css
@@ -41,10 +41,13 @@
.page-images-wall .inner .waterfall .list-item .prompt {
display: none;
position: absolute;
+ width: 180px;
bottom: 0;
+ left: 0;
color: #fff;
padding: 10px 10px 20px 10px;
line-height: 1.2;
+ border-top-right-radius: 10px;
background-color: rgba(10,10,10,0.7);
}
.page-images-wall .inner .waterfall .list-item .prompt .el-icon {
diff --git a/web/src/assets/css/images-wall.styl b/web/src/assets/css/images-wall.styl
index f1d3e3c3..350d9ecc 100644
--- a/web/src/assets/css/images-wall.styl
+++ b/web/src/assets/css/images-wall.styl
@@ -60,10 +60,13 @@
.prompt {
display none
position absolute
+ width 180px
bottom 0
+ left 0
color #ffffff
padding 10px 10px 20px 10px
line-height 1.2
+ border-top-right-radius 10px
background-color rgba(10, 10, 10, 0.7)
.el-icon {
diff --git a/web/src/components/Welcome.vue b/web/src/components/Welcome.vue
index 5a84892b..794804c3 100644
--- a/web/src/components/Welcome.vue
+++ b/web/src/components/Welcome.vue
@@ -88,7 +88,7 @@ const capabilities = ref([
value: ""
},
{
- text: "国产大语言模型支持,GLM2 模型接入中",
+ text: "国产大语言模型支持,百度文心,科大讯飞,ChatGLM...",
value: ""
},
{
diff --git a/web/src/views/ImageMj.vue b/web/src/views/ImageMj.vue
index b42c9654..b7f19759 100644
--- a/web/src/views/ImageMj.vue
+++ b/web/src/views/ImageMj.vue
@@ -283,6 +283,7 @@