我已经在Google App Engine上使用了几个月的网络应用程序,没有任何问题。所有这些都在周二发生了变化,当所有文件上传已经开始失败时出现CSRF问题。
实质上,我致电prepare_upload
从Google云端存储中获取一次性网址,用户将其文件发布到该网址,然后GCS在我的代码中调用网址以完成此过程,因此我掌握上传的文件。
移动应用程序通过在每个请求的Authorization
标头中发送身份验证令牌,使用Django Rest Framework的令牌身份验证机制进行身份验证。此标题似乎从几天前开始被删除,但我不确定这是否是实际问题。 CSRF检查失败的事实告诉我,正在跳过令牌认证步骤,而是使用会话认证。
我感到困惑。有没有人确切知道Google云端存储是否剥离了此标题,如果有,我可以如何覆盖它或解决它?
这是我的prepare_upload
效用函数:
from google.appengine.ext.blobstore import create_upload_url
def prepare_upload(request, url, **kwargs):
return create_upload_url(
url,
gs_bucket_name = settings.GOOGLE_CLOUD_STORAGE_BUCKET
), {}