小明:嘿,小李,我最近在开发一个统一身份认证平台,现在需要实现用户下载文件的功能,你有什么建议吗?
小李:嗯,你可以考虑结合OAuth2.0来确保安全性。用户登录后,获取访问令牌,然后通过RESTful API 提供下载接口。
小明:那具体怎么实现呢?有没有示例代码?
小李:当然有。比如使用Python的Flask框架,你可以创建一个下载端点,验证用户权限后返回文件流。
小明:听起来不错,能给我看看代码吗?

小李:好的,以下是一个简单的示例:
from flask import Flask, request, send_file
import os
app = Flask(__name__)
# 模拟文件存储路径
FILE_PATH = "/path/to/file.txt"
@app.route('/download', methods=['GET'])
def download_file():
token = request.headers.get('Authorization')
if not token or token != 'Bearer valid_token':
return "Unauthorized", 401
if not os.path.exists(FILE_PATH):
return "File not found", 404
return send_file(FILE_PATH, as_attachment=True)
if __name__ == '__main__':
app.run(debug=True)
小明:明白了,这个代码是通过验证Token来控制下载权限的,对吧?
小李:没错,这样可以确保只有合法用户才能下载文件。同时,`send_file`函数会将文件作为附件返回给客户端。
小明:太好了,这样就能安全地实现下载功能了。
小李:是的,记得在实际项目中使用更复杂的认证机制和文件管理策略。
