Merge branch 'production' of https://git.d-popov.com/popov/mwhitnessing into production
This commit is contained in:
@ -19,7 +19,7 @@ services:
|
||||
- GIT_USERNAME=deploy
|
||||
- GIT_PASSWORD=L3Kr2R438u4F7
|
||||
command: sh -c " cd /app && npm install && npm run prod; tail -f /dev/null"
|
||||
#command: sh -c " cd /app && n
|
||||
#command: sh -c " cd /app && tail -f /dev/null"
|
||||
tty: true
|
||||
stdin_open: true
|
||||
restart: always
|
||||
|
@ -27,13 +27,15 @@ if [ "$UPDATE_CODE_FROM_GIT" = "true" ]; then
|
||||
rsync -av /tmp/clone/package.json /app/package.json || echo "Rsync failed: Issue copying package.json"
|
||||
rsync -av /tmp/clone/package-lock.json /app/package-lock.json || echo "Rsync failed: Issue copying package-lock.json"
|
||||
rm -rf /app/node_modules
|
||||
cd /app
|
||||
npm install --no-audit --no-fund --no-optional --omit=optional
|
||||
yes | npx prisma generate
|
||||
else
|
||||
echo "Package files have not changed. Skipping package installation."
|
||||
fi
|
||||
|
||||
cd /app
|
||||
npm install --no-audit --no-fund --no-optional --omit=optional
|
||||
npx next build
|
||||
|
||||
# Clean up
|
||||
rm -rf /tmp/clone
|
||||
echo "Update process completed."
|
||||
|
@ -4,14 +4,14 @@ import { SignJWT } from "jose"
|
||||
import { createPrivateKey } from "crypto"
|
||||
|
||||
if (process.argv.includes("--help") || process.argv.includes("-h")) {
|
||||
console.log(`
|
||||
console.log(`
|
||||
Creates a JWT from the components found at Apple.
|
||||
By default, the JWT has a 6 months expiry date.
|
||||
Read more: https://developer.apple.com/documentation/sign_in_with_apple/generate_and_validate_tokens#3262048
|
||||
|
||||
Usage:
|
||||
node apple.mjs [--kid] [--iss] [--private_key] [--sub] [--expires_in] [--exp]
|
||||
APPLE_ID=com.mwhitnessing.sofia
|
||||
APPLE_APP_ID=com.mwhitnessing.sofia
|
||||
APPLE_TEAM_ID=XC57P9SXDK
|
||||
APPLE_KEY_ID=TB3V355G5Y
|
||||
APPLE_KEY
|
||||
@ -37,45 +37,45 @@ eyJhbGciOiJFUzI1NiIsImtpZCI6IlRCM1YzNTVHNVkifQ.eyJhdWQiOiJodHRwczovL2FwcGxlaWQuY
|
||||
--exp Future date in seconds when the JWT expires
|
||||
`)
|
||||
} else {
|
||||
const args = process.argv.slice(2).reduce((acc, arg, i) => {
|
||||
if (arg.match(/^--\w/)) {
|
||||
const key = arg.replace(/^--/, "").toLowerCase()
|
||||
acc[key] = process.argv[i + 3]
|
||||
}
|
||||
return acc
|
||||
}, {})
|
||||
const args = process.argv.slice(2).reduce((acc, arg, i) => {
|
||||
if (arg.match(/^--\w/)) {
|
||||
const key = arg.replace(/^--/, "").toLowerCase()
|
||||
acc[key] = process.argv[i + 3]
|
||||
}
|
||||
return acc
|
||||
}, {})
|
||||
|
||||
const {
|
||||
team_id,
|
||||
iss = team_id,
|
||||
const {
|
||||
team_id,
|
||||
iss = team_id,
|
||||
|
||||
private_key,
|
||||
private_key,
|
||||
|
||||
client_id,
|
||||
sub = client_id,
|
||||
client_id,
|
||||
sub = client_id,
|
||||
|
||||
key_id,
|
||||
kid = key_id,
|
||||
key_id,
|
||||
kid = key_id,
|
||||
|
||||
expires_in = 86400 * 180,
|
||||
exp = Math.ceil(Date.now() / 1000) + expires_in,
|
||||
} = args
|
||||
expires_in = 86400 * 180,
|
||||
exp = Math.ceil(Date.now() / 1000) + expires_in,
|
||||
} = args
|
||||
|
||||
/**
|
||||
* How long is the secret valid in seconds.
|
||||
* @default 15780000
|
||||
*/
|
||||
const expiresAt = Math.ceil(Date.now() / 1000) + expires_in
|
||||
const expirationTime = exp ?? expiresAt
|
||||
console.log(`
|
||||
/**
|
||||
* How long is the secret valid in seconds.
|
||||
* @default 15780000
|
||||
*/
|
||||
const expiresAt = Math.ceil(Date.now() / 1000) + expires_in
|
||||
const expirationTime = exp ?? expiresAt
|
||||
console.log(`
|
||||
Apple client secret generated. Valid until: ${new Date(expirationTime * 1000)}
|
||||
|
||||
${await new SignJWT({})
|
||||
.setAudience("https://appleid.apple.com")
|
||||
.setIssuer(iss)
|
||||
.setIssuedAt()
|
||||
.setExpirationTime(expirationTime)
|
||||
.setSubject(sub)
|
||||
.setProtectedHeader({ alg: "ES256", kid })
|
||||
.sign(createPrivateKey(private_key.replace(/\\n/g, "\n")))}`)
|
||||
.setAudience("https://appleid.apple.com")
|
||||
.setIssuer(iss)
|
||||
.setIssuedAt()
|
||||
.setExpirationTime(expirationTime)
|
||||
.setSubject(sub)
|
||||
.setProtectedHeader({ alg: "ES256", kid })
|
||||
.sign(createPrivateKey(private_key.replace(/\\n/g, "\n")))}`)
|
||||
}
|
Reference in New Issue
Block a user