跳转至

更新用户头像

Authany 允许您的服务器通过管理 API(Admin API)更新用户头像。

概览

要更新用户头像,需要:

  1. 向 /_api/admin/images/upload 发起 GET 请求,获取预签名上传 URL(pre-signed upload url)。
  2. 向预签名上传 URL 发起 POST 请求,上传图片文件。上传完成后,该调用会返回结果 URL。
  3. 调用 Admin GraphQL API /_api/admin/graphql 更新用户的标准属性,将 picture 属性更新为上一步返回的结果 URL。

API 详情

获取预签名上传 URL

向 /_api/admin/images/upload 发起 GET 请求,获取预签名上传 URL。

该调用如下所示:

GET /_api/admin/images/upload HTTP/1.1
Host: <YOUR_APP>.authgear.cloud
Authorization: Bearer <JWT>

该调用会返回预签名上传 URL:

{
  "result": {
    "upload_url": "<PRESIGNED_UPLOAD_URL>"
  }
}

上传图片

将图片上传到预签名上传 URL。建议您在上传前对图片进行预处理:图片应裁剪为正方形,且大小应小于 10 MB。

使用 FormData 上传文件,字段名为 file。大多数 HTTP 库都可以用来构造 multipart/form-data 请求。

该调用如下所示:

POST <PRESIGNED_UPLOAD_URL_PATH> HTTP/1.1
Host: <YOUR_APP>.authgear.cloud
Content-Length: <CONTENT_LENGTH>
Content-Type: multipart/form-data; boundary=----boundary

----boundary
Content-Disposition: form-data; name="file"; filename="image.png"
Content-Type: image/png

<CONTENT_OF_IMAGE_FILE>
----boundary

上传完成后,该调用会返回结果 URL,格式为 authgearimages:///APP_ID/OBJECT_ID:

{
  "result": {
    "url": "authgearimages:///..."
  }
}

在标准属性中更新用户头像

参照 更新用户的标准属性 文档更新用户的 picture 属性,将该属性替换为上一步上传得到的新头像 URL(例如 authgearimages:///...)。