新的登录接口 #51

Closed
opened 2025-01-02 11:22:41 +08:00 by liangyuanpeng · 3 comments

将会发布一个新的登录接口,返回内容更规范,原来的接口 data 直接就是token, 不好扩展。

API地址为 https://smartoilets.net/openapi/api/api/v1/oauth/login

新街口将包含 token 过期时间, 前端在请求任何接口之前直接用 这个过期时间判断一下是否过期,如果过期了则登录获取新的 token

涉及 page:

同时该接口支持匿名用户登录,用于给 https://smartoilets.net/fbpage/twsc/1A/female/abc 这样不需要用户登录的页面.

匿名账号规则: 如果URL中没有deviceId, 则 username 为 anonymous, 否则 username 为 {deviceId}

密码规则: {page}+当前年月日

例如 https://smartoilets.net/simplepage/PWH/F2/female?profile=alerter
则账号为 anonymous 密码为 simplepage20250109

返回数据结构:

{
    "msg": "success",
    "timestamp": 1736406646093,
    "data": {
        "accessToken": "eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJzbWFydG9pbGV0cy11c2VycyIsInN1YiI6InNtYXJ0b2lsZXRzLXVzZXJzIiwiaXNzIjoic21hcnRvaWxldHMiLCJ1c2VyTmFtZSI6ImFub255bW91cyIsInR5cGUiOiJ1c2VyIiwidXNlcklkIjo5OTk5OTksImV4cCI6MTczNjQxMzg0Nn0.SJO3Mvz-JLKA2ldlH9RBSE4iYVN9p8vYHrxZmwjzxys",
        "refreshToken": null,
        "expireAt": 1736413846
    }
}

前端应该将整个data缓存在本地,在请求任何接口前先用 expireAt 这个时间戳去与当前时间戳做对比, 如果 expireAt 小则说明token已经过期了, 需要重新 login

将会发布一个新的登录接口,返回内容更规范,原来的接口 data 直接就是token, 不好扩展。 API地址为 https://smartoilets.net/openapi/api/api/v1/oauth/login 新街口将包含 token 过期时间, 前端在请求任何接口之前直接用 这个过期时间判断一下是否过期,如果过期了则登录获取新的 token 涉及 page: - fbpage 例如 https://smartoilets.net/fbpage/twsc/1A/female/abc - tab - simplepage - ... 同时该接口支持匿名用户登录,用于给 https://smartoilets.net/fbpage/twsc/1A/female/abc 这样不需要用户登录的页面. 匿名账号规则: 如果URL中没有deviceId, 则 username 为 anonymous, 否则 username 为 {deviceId} 密码规则: {page}+当前年月日 例如 https://smartoilets.net/simplepage/PWH/F2/female?profile=alerter 则账号为 anonymous 密码为 simplepage20250109 返回数据结构: ```json { "msg": "success", "timestamp": 1736406646093, "data": { "accessToken": "eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJzbWFydG9pbGV0cy11c2VycyIsInN1YiI6InNtYXJ0b2lsZXRzLXVzZXJzIiwiaXNzIjoic21hcnRvaWxldHMiLCJ1c2VyTmFtZSI6ImFub255bW91cyIsInR5cGUiOiJ1c2VyIiwidXNlcklkIjo5OTk5OTksImV4cCI6MTczNjQxMzg0Nn0.SJO3Mvz-JLKA2ldlH9RBSE4iYVN9p8vYHrxZmwjzxys", "refreshToken": null, "expireAt": 1736413846 } } ``` 前端应该将整个data缓存在本地,在请求任何接口前先用 expireAt 这个时间戳去与当前时间戳做对比, 如果 expireAt 小则说明token已经过期了, 需要重新 login
liangyuanpeng added the
kind/feature
label 2025-01-02 11:22:41 +08:00
Author
Owner

返回数据结构:

{
    "msg": "success",
    "timestamp": 1736406646093,
    "data": {
        "accessToken": "eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJzbWFydG9pbGV0cy11c2VycyIsInN1YiI6InNtYXJ0b2lsZXRzLXVzZXJzIiwiaXNzIjoic21hcnRvaWxldHMiLCJ1c2VyTmFtZSI6ImFub255bW91cyIsInR5cGUiOiJ1c2VyIiwidXNlcklkIjo5OTk5OTksImV4cCI6MTczNjQxMzg0Nn0.SJO3Mvz-JLKA2ldlH9RBSE4iYVN9p8vYHrxZmwjzxys",
        "refreshToken": null,
        "expireAt": 1736413846
    }
}

前端应该将整个data缓存在本地,在请求任何接口前先用 expireAt 这个时间戳去与当前时间戳做对比, 如果 expireAt 小则说明token已经过期了, 需要重新 login

返回数据结构: ```json { "msg": "success", "timestamp": 1736406646093, "data": { "accessToken": "eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJzbWFydG9pbGV0cy11c2VycyIsInN1YiI6InNtYXJ0b2lsZXRzLXVzZXJzIiwiaXNzIjoic21hcnRvaWxldHMiLCJ1c2VyTmFtZSI6ImFub255bW91cyIsInR5cGUiOiJ1c2VyIiwidXNlcklkIjo5OTk5OTksImV4cCI6MTczNjQxMzg0Nn0.SJO3Mvz-JLKA2ldlH9RBSE4iYVN9p8vYHrxZmwjzxys", "refreshToken": null, "expireAt": 1736413846 } } ``` 前端应该将整个data缓存在本地,在请求任何接口前先用 expireAt 这个时间戳去与当前时间戳做对比, 如果 expireAt 小则说明token已经过期了, 需要重新 login
Author
Owner

账号规则: 如果URL中没有deviceId, 则 username 为 anonymous, 否则 username 为 {deviceId}

密码规则: {page}+当前年月日

例如 https://smartoilets.net/simplepage/PWH/F2/female?profile=alerter
则账号为 anonymous 密码为 simplepage20250109

账号规则: 如果URL中没有deviceId, 则 username 为 anonymous, 否则 username 为 {deviceId} 密码规则: {page}+当前年月日 例如 https://smartoilets.net/simplepage/PWH/F2/female?profile=alerter 则账号为 anonymous 密码为 simplepage20250109
liangyuanpeng changed title from [服务器WIP] 新的登录接口 to 新的登录接口 2025-01-09 15:27:05 +08:00
jeff added the
done-waiting-confirmed
label 2025-01-09 23:49:32 +08:00
Owner

加了 再看下

加了 再看下
Sign in to join this conversation.
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: smartoilets-front/projects#51
No description provided.