设置提供程序时 Strapi v4 Grant 中间件错误

Ami*_*jee 4 plugins middleware node.js strapi

在 Strapi v4 中,我尝试按照latest-docs设置不和谐的誓言提供程序。我已经设置了按键和所有内容,但是当我尝试点击时/api/connect/discord出现此错误

Grant: mount session middleware first
Run Code Online (Sandbox Code Playgroud)

我仔细观察了一下,发现 Strapi 需要先使用 grant 作为中间件才能使用它。所以我检查了/config/middleware.js

module.exports = [
  'strapi::errors',
  'strapi::security',
  'strapi::cors',
  'strapi::poweredBy',
  'strapi::logger',
  'strapi::query',
  'strapi::body',
  'strapi::favicon',
  'strapi::public',
];
Run Code Online (Sandbox Code Playgroud)

它缺少授权,因此我尝试创建自定义全局授权中间件,但我需要获取应用程序实例并执行以下操作

app.use(session({secret:'grant'));
app.use(grant);
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?或者如果有人有任何想法来解决上述问题?

小智 5

我对 twitch 的整合也有同样的担忧。

目前我找到的唯一解决方案就是这样做,但我希望在下一次更新中能够修复,因为我们突然依赖于 koa-session2 库。

https://github.com/Secbone/koa-session2

=> 你的-strapi-app/src/index.js

'use strict';

const session = require("koa-session2");

module.exports = {
  /**
   * An asynchronous register function that runs before
   * your application is initialized.
   *
   * This gives you an opportunity to extend code.
   */
  register({ strapi }) {
    strapi.server.use(session({
      secret: "grant",
    }));
  },

  /**
   * An asynchronous bootstrap function that runs before
   * your application gets started.
   *
   * This gives you an opportunity to set up your data model,
   * run jobs, or perform some special logic.
   */
  bootstrap(/*{ strapi }*/) { },
};

Run Code Online (Sandbox Code Playgroud)