微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 STRAPI 向新 API 添加权限不是从仪表板

如何解决如何使用 STRAPI 向新 API 添加权限不是从仪表板

我需要做一个新的 api 才能使用 sendgrid 发送电子邮件。我遵循了官方文档和其他示例,所以我这样做了:

配置/插件

module.exports = ({ env }) => ({
  email: {
    provider: 'sendgrid',providerOptions: {
      apiKey: env('SENDGRID_API_KEY'),},settings: {
      defaultFrom: 'juliasedefdjian@strapi.io',defaultReplyTo: 'juliasedefdjian@strapi.io',});

然后我在 api 文件夹中创建了一个名为 email 的新文件

api/email/config/routes.json

{
  "routes": [
    {
      "method": "POST","path": "/email","handler": "email.index","config": {
        "policies": []
      }
    }
  ]
}

终于在api/email/controllers/email.js

const { default: createStrapi } = require('strapi');

module.exports = {
  index: async (ctx) => {
    //build email with data from ctx.request.body

    await createStrapi.plugins['email'].services.email.send({
      to: 'email@email.com',from: 'email@email.com',replyTo: 'email@email.com',subject: 'test',text: 'test',});
ctx.send('Email sent!');
  },};

真正的问题是 /email api 会返回 403,即使我从仪表板执行此操作:

enter image description here

我用 Strapi 做了很多 API,但我从来没有用它发送过电子邮件

有没有办法从代码添加权限?我不得不说,如果我使用 GET 方法它可以工作,但我需要使用 POST 方法来完成它,但它没有。我错过了什么吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。