LoopbackJS Получите аутентифицированный UserId, который будет сохранен в модели, не подвергая его через API - PullRequest
0 голосов
/ 24 января 2019

У меня в Loopback ниже модель «Контент», которая требует аутентифицированного пользователя для доступа.Каждый фрагмент контента может быть создан только одним пользователем.(пользователь унаследован от внутренней пользовательской модели Loopback). Поэтому при создании контента я бы хотел, чтобы идентификатор пользователя был сохранен в записи контента.Тем не менее, я хотел бы, чтобы это происходило за кулисами без необходимости проходить через userId через API.У меня была игра с отношениями, но, похоже, ничего не получается ..

{
  "name": "Content",
  "base": "PersistedModel",
  "idInjection": true,
  "options": {
    "validateUpsert": true
  },
  "properties": {
    "BooId": {
      "type": "string",
      "required": true
    },
    "Name": {
      "type": "string",
      "required": true
    },
    "Language": {
      "type": "string",
      "required": true,
      "default": "en-gb"
    },
    "Version": {
      "type": "number",
      "default": 1
    },
    "Text": {
      "type": "string",
      "required": true
    },
    "Created": {
      "type": "date",
      "defaultFn": "now"
    },
    "Tags": {
      "type": [
        "string"
      ],
      "default": []
    }
  },
  "validations": [],
  "relations": [],
  "acls": [
    {
      "accessType": "*",
      "principalType": "ROLE",
      "principalId": "$unauthenticated",
      "permission": "DENY"
    }
  ],
  "methods": {}
}

1 Ответ

0 голосов
/ 24 января 2019

Прежде всего, я бы создал новое отношение к контенту.Поэтому я бы добавил отношение к вашей модели контента:

"relations": {
  "author": {
    "type": "belongsTo",
    "model": "user", // <-- your user model name
    "foreignKey": ""
  }
}

Затем вы можете использовать хук before save, чтобы установить userId для вашей модели контента.

Или выможете просто скачать этот миксин, чтобы сделать это для вас.

https://github.com/akkonrad/loopback-author-mixin

...