Я звоню по своему маршруту express (domain.com/api) из другого домена (domain1.com). Поэтому я настроил Express для приема запросов POST к маршруту / API и подписания JWT перед обменом JWT через Ax ios на токен доступа на предъявителя.
Не могу получить Ax ios отправить запрос на стрельбу. Возможно ли, что это брандмауэр? Как я могу увидеть, где живет ошибка? Простите, я все еще новичок в Node / Express.
Вот мой соответствующий код:
const express = require('express');
const cors = require("cors");
const jwt = require('jsonwebtoken');
const axios = require('axios');
// Initialize express app
var app = express();
var router = express.Router();
// Serve static pages
app.use(express.static('./'));
//init morgan logging
app.use(morgan("common"));
// parse JSON objects
app.use(express.json());
//init cors
app.use(cors({
origin: ["My Request Domain Here"],
methods: ["POST", "GET"],
allowedHeaders: ["Content-Type", "Authorization"],
credentials: true
}));
// Specify public page entry point
app.get('/', function(req, res) {
res.sendFile(path.join('/index.html'))
});
app.post('/api', function(req, res){
//get client data from Launch Request
const oi = atob(req.body.oi);
const ta = atob(req.body.ta);
const ak = atob(req.body.ak);
const cs = atob(req.body.cs);
//get and stitch together private Key to sign JWT
var privateKey = atob(req.body.pk);
privateKey = ["-----BEGIN PRIVATE KEY-----", pk, "-----END PRIVATE KEY-----"].join("\n");
const jwt_data = {
"exp": Math.round(87000 + Date.now()/1000),
"iss": oi,
"sub": ta,
"https://ims-na1.adobelogin.com/s/ent_gdpr_sdk": true,
"aud": "https://ims-na1.adobelogin.com/c/" + ak
}
const adobe_jwt_token = jwt.sign(
jwt_data,
pk,
{ algorithm: 'RS256' }
);
var bearer_token;
var token_data = {
'client_id': ak,
'client_secret': cs,
'jwt_token': adobe_jwt_token,
};
axios.post('https://ims-na1.adobelogin.com/ims/exchange/jwt/', token_data )
.then(function (response) {
console.log(response);
bearer_token = response
});
res.status(200).send({
"exchange_data": token_data,
"token": bearer_token
});
});
// Specify port
const port = process.env.PORT || 5000;
// Start the app
app.listen(port, () => {
console.log('App started on port: ' + port);
});