65 lines
1.3 KiB
Markdown
65 lines
1.3 KiB
Markdown
# 认证与登录
|
|
|
|
## 1) 登录
|
|
|
|
`POST /api/v1/auth/login`
|
|
|
|
说明:小程序端调用 `wx.login()` 获取 `code`,后端用该 `code` 向微信 `jscode2session` 换取 `openid/session_key`,并在数据库中创建/更新用户记录。
|
|
|
|
请求示例:
|
|
|
|
```bash
|
|
curl -X POST 'http://127.0.0.1:8080/api/v1/auth/login' \
|
|
-H 'Content-Type: application/json' \
|
|
-d '{
|
|
"mini_program_id": 2,
|
|
"code": "wx.login 返回的 code",
|
|
"nickname": "可选:昵称",
|
|
"avatar_url": "可选:头像",
|
|
"gender": 1,
|
|
"phone": "可选:手机号"
|
|
}'
|
|
```
|
|
|
|
成功响应示例(节选):
|
|
|
|
```json
|
|
{
|
|
"code": 200,
|
|
"message": "success",
|
|
"data": {
|
|
"user": {
|
|
"id": 1,
|
|
"mini_program_id": 1,
|
|
"open_id": "oXXX",
|
|
"nickname": "昵称",
|
|
"avatar_url": "https://...",
|
|
"gender": 1,
|
|
"phone": "110"
|
|
},
|
|
"session_key": "wx-session-key",
|
|
"mini_program": {
|
|
"id": 1,
|
|
"name": "某小程序",
|
|
"app_id": "wx..."
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## 2) 受保护接口如何带 Token
|
|
|
|
后端把 `session_key` 当做 Token 使用,调用受保护接口时在 Header 中带:
|
|
|
|
```
|
|
Authorization: Bearer <session_key>
|
|
```
|
|
|
|
请求示例:
|
|
|
|
```bash
|
|
curl -X GET 'http://127.0.0.1:8080/api/v1/smoke/logs?page=1&page_size=20' \
|
|
-H 'Authorization: Bearer wx-session-key'
|
|
```
|
|
|