trueai-org / midjourney-proxy

A public welfare project offering a free drawing API that proxies Midjourney's Discord channel, supporting one-click face swapping for images and videos.
https://ai.trueai.org
GNU General Public License v3.0
373 stars 49 forks source link

ApiSecret不起效果 #8

Closed Recho-design closed 3 months ago

Recho-design commented 3 months ago

填写ApiSecret后,ChatGPT Web Midjourney Proxy端请求头中出现了Mj-Api-Secret但内容和ApiSecret不一致也能生图

不填写ApiSecret可以成功调用并生图,填写ApiSecret就是以上的问题,在web端随意填写key都可以调用

在midjourney-proxy的后台进行生图测试时,Mj-Api-Secret的内容是空白

我应该怎样给api添加key呢,本人比较小白,请指教

trueai-org commented 3 months ago

请求头添加:AuthorizationMj-Api-Secret 是等价的,如果配置了任意一个,只要其中一个有效的,就可以绘图。 如果:UserToken 或 AdminToken,都没有设定,则不限制绘图认证。

  "UserToken": "", // 用户绘画令牌 token,可以用来访问绘画接口,可以不用设定
  "AdminToken": "", // 管理后台令牌 token,可以用来访问绘画接口和管理员账号等功能
trueai-org commented 3 months ago

注意,不要开启 Demo 模式,DEMO 用于演示模式,演示模式下,不使用令牌也可以请求绘图的。

Recho-design commented 3 months ago

感谢回复,我的appsettings.Production.json配置文件大致填写如下,填写了UserToken也没有效果?在ChatGPT Web Midjourney Proxy随意填写了api secret也成功生图了

  "Demo": null, // 网站配置为演示模式
  "UserToken": "888888",
  "AdminToken": "", // 管理后台令牌 token,可以用来访问绘画接口和管理员账号等功能
  "mj": {
    "AccountChooseRule": "BestWaitIdle", // BestWaitIdle | Random | Weight | Polling
    "Discord": {
      "GuildId": "126521729*****",
      "ChannelId": "126521729*****",
      "PrivateChannelId": "1256495659***", // MJ 私信频道 ID,用来接受 seed 值
      "NijiBotChannelId": "1261608644***", // NIJI 私信频道 ID,用来接受 seed 值
      "UserToken": "*******",
      "BotToken": "******",
      "UserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36",
      "Enable": false,
      "CoreSize": 3,
      "QueueSize": 10,
      "MaxQueueSize": 100,
      "TimeoutMinutes": 5,
      "Mode": "FAST", // RELAX | FAST | TURBO 指定生成速度模式 --fast, --relax, or --turbo parameter at the end.
      "Weight": 1
    },
    "NgDiscord": {
      "Server": "",
      "Cdn": "",
      "Wss": "",
      "ResumeWss": "",
      "UploadServer": ""
    },
    "Proxy": {
      "Host": "",
      "Port": 10809
    },
    "Accounts": [],
    "BaiduTranslate": {
      "Appid": "", // your_appid
      "AppSecret": "" // your_app_secret
    },
    "Openai": {
      "GptApiUrl": "", // your_gpt_api_url
      "GptApiKey": "", // your_gpt_api_key
      "Timeout": "00:00:30",
      "Model": "gpt-3.5-turbo",
      "MaxTokens": 2048,
      "Temperature": 0
    },
    "TranslateWay": "NULL", // NULL | GTP | BAIDU
    "ApiSecret": "888888", 
    "NotifyHook": "", // your_notify_hook
    "NotifyPoolSize": 10
  },
  "Serilog": {
    "MinimumLevel": {
      "Default": "Information",
      "Override": {
        "Default": "Warning",
        "System": "Warning",
        "Microsoft": "Warning"
      }
    },
    "WriteTo": [
      {
        "Name": "File",
        "Args": {
          "path": "logs/log.txt",
          "rollingInterval": "Day",
          "fileSizeLimitBytes": null,
          "rollOnFileSizeLimit": false,
          "retainedFileCountLimit": 31
        }
      },
      {
        "Name": "Console"
      }
    ]
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  "urls": "http://*:8080"
}
trueai-org commented 3 months ago

要配置一下管理员 token,因为 token 为空时 = 管理员 token。因此认为是管理员。

Recho-design commented 3 months ago

都设定了token还是不起作用 "UserToken": "888888", "AdminToken": "999999", "ApiSecret": "777777",

代理后台测试:

1

web后台测试: 2

trueai-org commented 3 months ago

你是否有多个appsetting配置文件

trueai-org commented 3 months ago

确保,appsettings.Production.json 这个是有效的,修改后重启下容器

Recho-design commented 3 months ago

没有其他的配置文件了,每次修改都重启过 3 4

trueai-org commented 3 months ago

那么肯定是appsetting编码问题了,确保是unix编码格式,可以使用nodepad++查看文件编码

Recho-design commented 3 months ago

我在服务器和本地都看了一下,应该是unix? 5 6

trueai-org commented 3 months ago

再确认下,后台能否登录。 image

trueai-org commented 3 months ago

登录后确认是否为 admin image

Recho-design commented 3 months ago

后台可以登录,且输入正确的密码才能以admin身份登入

trueai-org commented 3 months ago

那就是说明配置是有效的。 你的环境变量中,没有配置 DEMO 吧?

trueai-org commented 3 months ago

经过多次测试,不输入 token 的话,一定是返回 401 的 image

trueai-org commented 3 months ago

判断是否开启 demo,如果使用 空 密码,可以登录,说明开启了 demo 模式。

Recho-design commented 3 months ago

现在正常了!docker启动时复制的第三步的代码,导致环境变量加了 -e DEMO=true \没有注意到,修改后正确运行了 非常感谢🙏