5月29日 22:48
cURL 如何处理 HTTP 认证?Basic Auth/Bearer/OAuth 怎么用?
三种认证:Basic Auth——curl -u user:pass URL(密码明文 base64 编码必须配合 HTTPS);Bearer Token——curl -H "Authorization: Bearer TOKEN" URL;OAuth 2.0——先 curl token 端点拿 access_token,再带 token 请求 API。cURL 无内置 OAuth 流程,需手动实现 token 获取和刷新。
追问
-u 和 -H Authorization 有什么区别?
-u user:pass 自动生成 Authorization: Basic 头,更简洁。-H 手动写原始头,适合精确控制。安全做法:用环境变量 -u user:$API_KEY 避免密码出现在 shell history。
Bearer Token 过期了怎么刷新?
脚本模式:先 curl refresh_token 端点拿新 access_token,替换环境变量,再请求 API。生产建议用 SDK 自动刷新。
OAuth 2.0 授权码流程怎么用 cURL 实现?
分三步:1.浏览器访问授权 URL 手动授权拿 code;2.curl -X POST token-url 换 token;3.curl -H "Authorization: Bearer TOKEN" 请求资源。第 1 步必须浏览器完成。
API Key 和 Bearer Token 有什么区别?
API Key 是静态字符串,不过期除非手动轮换。Bearer Token 有过期时间,由 OAuth 签发,可精细控制权限范围(scope)。API Key 适合服务间调用,Bearer Token 适合用户级授权。
.netrc 文件有什么用?
存储登录凭证:machine api.example.com login user password pass。cURL 加 -n 自动读取,不用 -u 传密码。chmod 600 保护文件权限。