烧瓶 CORS:我如何收到'Authorization'标头?



我在 Vue 上有一个前端应用程序.js在 Flask/Python 上有一个后端应用程序。

我正在尝试向后端发送带有"授权"标头的请求,但是此标头未到达我的后端。

我已经尝试在 CORS 函数中提供此标头,但没有成功。

有人知道我该如何解决它吗?

我在下面发送前端和后端代码。

提前谢谢你。

Vue.js代码

var authorization = ...
axios.post(process.env.VUE_APP_URL + 'ms3/sign_in', 
  {
    params: {
    }
  }, {
    headers: {
      'Access-Control-Allow-Origin': '*'
      'Authorization': authorization
    }
  }).then(response => {
    localStorage.setItem('ms3_user_token', response.headers.authorization)
  }).catch(error => {
    self.errorSignIn = error
    self.erroredSignIn = true
  }).finally(() => {
    self.loading = false
  })

烧瓶代码:

from flask import Flask
from flask_cors import CORS
...
app = Flask(__name__)
CORS(app, origins='*', 
     headers=['Content-Type', 'Authorization'], 
     expose_headers='Authorization')
...
@app.route("/ms3/sign_in", methods = ["POST", "OPTIONS"])
def ms3_sign_in(): 
    # the header does not exist
    auth_header = request.headers.get("Authorization")
    if auth_header is None or not auth_header.startswith('Basic '):
        return jsonify({ "message": "Invalid 'Authorization' header" }), 401
    username, password = ...
    encoded_jwt_token = auth_login(username, password)
    resp = Response("Returned Token")
    resp.headers['Authorization'] = encoded_jwt_token
    return resp

感谢来自 Python 巴西组的 Allan,他帮助了我。

需要在我对 Vue 应用程序的请求中添加"'内容类型':'application/json'.js"。

我在下面发送更新的代码以备将来帮助:

Vue.js代码

var authorization = ...
axios.post(process.env.VUE_APP_URL + 'ms3/sign_in', 
  {
    params: {
    }
  }, {
    headers: {
      'Access-Control-Allow-Origin': '*',
      'Content-Type': 'application/json',  // <-- here
      'Authorization': authorization
    }
  }).then(response => {
    localStorage.setItem('ms3_user_token', response.headers.authorization)
  }).catch(error => {
    self.errorSignIn = error
    self.erroredSignIn = true
  }).finally(() => {
    self.loading = false
  })

相关内容

  • 没有找到相关文章

最新更新