Browse Source

Fixing some bugs with JWT creation not getting an API key.

pull/4023/head
mike12345567 6 years ago
parent
commit
c3380d8ab4
  1. 2
      packages/server/src/api/controllers/auth.js
  2. 7
      packages/server/src/utilities/usageQuota.js

2
packages/server/src/api/controllers/auth.js

@ -55,7 +55,7 @@ exports.authenticate = async ctx => {
}
// if in cloud add the user api key
if (environment.CLOUD) {
payload.apiKey = getAPIKey(ctx.user.appId)
payload.apiKey = await getAPIKey(ctx.user.appId)
}
const token = jwt.sign(payload, ctx.config.jwtSecret, {

7
packages/server/src/utilities/usageQuota.js

@ -69,13 +69,16 @@ exports.update = async (apiKey, property, usage) => {
try {
await apiKeyTable.update(buildUpdateParams(apiKey, property, usage))
} catch (err) {
// conditional check means the condition failed, need to check why
if (err.code === "ConditionalCheckFailedException") {
// get the API key so we can check it
const keyObj = await apiKeyTable.get({ primary: apiKey })
// the usage quota or usage limits didn't exist
if (keyObj && (keyObj.usageQuota == null || keyObj.usageLimits == null)) {
keyObj.usageQuota = DEFAULT_USAGE
keyObj.usageLimits = DEFAULT_PLAN
keyObj.usageQuota =
keyObj.usageQuota == null ? DEFAULT_USAGE : keyObj.usageQuota
keyObj.usageLimits =
keyObj.usageLimits == null ? DEFAULT_PLAN : keyObj.usageLimits
keyObj.quotaReset = getNewQuotaReset()
await apiKeyTable.put({ item: keyObj })
return

Loading…
Cancel
Save