【问题标题】:I cant access a JWT token from a get request in express我无法从快速获取请求中访问 JWT 令牌
【发布时间】:2022-01-11 07:56:48
【问题描述】:
const functions = require('firebase-functions');
const admin = require('firebase-admin');

admin.initializeApp()
const express = require('express');
const app = express();

const cors = require('cors');
const jwt = require('jsonwebtoken');
const bcrypt = require('bcrypt');

const initizalize = require('./passportConfig');
const bodyParser = require('body-parser')
app.use(bodyParser.json())


const cookieParser = require("cookie-parser");
app.use(cookieParser());

const db = admin.firestore()


app.get('/checkToken', function(req, res) {
  console.log('Cookies: ', req.cookies.token);
  res.sendStatus(200);
});



exports.app = functions.https.onRequest(app);

Example Image of Error

我可以在 chrome 开发工具上看到那里有一个令牌,但由于某种原因,在调用路径 /checktoken 时该令牌未定义。

【问题讨论】:

  • 您是如何发送请求的?您使用的是fetch 还是其他一些 api/package?
  • 在客户端使用 fetch。

标签: javascript express get


【解决方案1】:

尝试在fetch 选项中使用credentials 选项。允许的值是 'same-origin' 用于同源请求,'include' 用于所有请求,'omit' 省略使用 cookie。 Fetch 默认使用 `'omit`。 Docs

如果您使用credentials: 'include',则必须在后端将Access-Control-Allow-Origin 标头设置为*。如果您使用cors 模块,那么只需执行app.use(cors())app.use(cors({ origin: '*' }))。两者都是一样的。

【讨论】:

  • 如何防止 cors 错误。我不断收到 cors 错误“从原点 'localhost:3000' 获取 'localhost:5001/connorspackman-49d00/us-central1/app/checkToken' 的访问权限已被 CORS 策略阻止:响应中的 'Access-Control-Allow-Origin' 标头的值不能是当请求的凭据模式为 'include' 时,通配符 '*'。"
  • 你正在导入cors 模块,但你没有使用它。在添加任何路由器/路径之前插入app.use(cors())
  • 我正在使用 cors "var corsOptions = { orgin: "localhost:3000", } app.use(cors(corsOptions));"
  • 您是否像http://localhost:3000 一样使用该协议,如果是,则检查服务器上的其他问题,例如某些服务器端错误。
  • imgur.com/a/qitZoX5 我得到的唯一错误是客户端。我已将错误的屏幕截图附加到此链接
猜你喜欢
  • 1970-01-01
  • 2020-06-12
  • 2020-11-01
  • 1970-01-01
  • 2019-11-08
  • 2019-01-14
  • 2014-02-17
  • 1970-01-01
  • 2021-01-11
相关资源
最近更新 更多