gpt4 book ai didi

python - Flask-sentinel/oauth/token 端点 CORS 问题

转载 作者:太空狗 更新时间:2023-10-30 01:36:06 24 4
gpt4 key购买 nike

我在尝试使用我的前端从我的 flask-sentinel 应用程序获取 token 时遇到问题。

从我的前端向我的 Python Eve 发出 AJAX 请求API 服务器我用的是superagent模块。

使用基本身份验证时,我可以毫无问题地从我的端点获取数据。见下面的代码:

superagent
.get( 'http://192.168.1.x:5000/endpoint' )
.auth( this.params.username, this.params.password )
.on( 'error', this.onError )
.then( this.onSuccess );

如果我尝试使用此代码向 /oauth/token 端点请求 token :

superagent
.post( 'http://192.168.1.x:5000/oauth/token' )
.set( 'Content-Type', 'application/x-www-form-urlencoded' )
.send( 'grant_type=password&client_id='+this.params.client_id+'&username='+this.params.username+'&password='+this.params.password )
.on( 'error', this.onError )
.then( this.onTokenReceived );

我收到一个 CORS 错误:

Access to XMLHttpRequest at 'http://192.168.1.x:5000/oauth/token' from origin 'http://192.168.1.y:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

这是我的应用程序的设置(省略数据库和域设置):

SENTINEL_X_DOMAINS           = ['http://192.168.1.y:3000']
SENTINEL_X_HEADERS = ['Authorization','Content-type','If-Match','Access-Control-Allow-Origin']
SENTINEL_X_EXPOSE_HEADERS = SENTINEL_X_HEADERS
SENTINEL_RESOURCE_METHODS = ['GET','HEAD','PUT','PATCH','POST','DELETE','OPTIONS']
SENTINEL_PUBLIC_METHODS = SENTINEL_RESOURCE_METHODS
SENTINEL_X_ALLOW_CREDENTIALS = True

X_DOMAINS = ['http://192.168.1.y:3000']
X_ALLOW_CREDENTIALS = True
X_HEADERS = ['Authorization','Content-type','If-Match','Access-Control-Allow-Origin']
RESOURCE_METHODS = ['GET','HEAD','PUT','PATCH','POST','DELETE','OPTIONS']

你能指导我找出我做错了什么吗?

提前致谢!

最佳答案

可能因为内容类型不是文本/纯文本,所以浏览器发出 OPTIONS要求。并且如控制台错误中所述,响应未设置'Access-Control-Allow-Origin ' 标题。

从看Eve's docs ,您似乎需要使用 ['Access-Control-Allow-Origin'] 设置 X_EXPOSE_HEADERS 变量:

"Allows API maintainers to specify which headers are exposed within a CORS response. Allowed values are: None or a list of headers names. Defaults to None."

浏览器期望收到“Access-Control-Allow-Origin”,因此失败。尝试在 API 的响应中允许此 header

关于python - Flask-sentinel/oauth/token 端点 CORS 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54112127/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com