auth 登入身分
畫面層、邏輯層都可用。
sdk.auth.getSession()
ts
sdk.auth.getSession(options?: { refresh?: boolean }): Promise<Session>
interface Session {
userId: string;
nickname: string;
avatar: string | null; // 沒有頭像時為 null
token: string; // 只對本小程序後端有效的短效 token
expiresAt: string; // ISO 8601(UTC)
}| 選項 | 說明 |
|---|---|
refresh | true 時不用快取,一定重新簽發(後端回 401 時用)。需要容器 1.2.0 |
- 容器在開啟時就預先簽發 token;剩不到 1 分鐘會自動換新。每次需要時直接呼叫即可。
- token 綁定小程序 ID,其他小程序的 token 無效。
- 失敗時以
NETWORKreject(取得 token 失敗);下次呼叫會重新簽發。
ts
const { token } = await sdk.auth.getSession();
const res = await sdk.http.fetch('https://api.example.com/me', {
headers: { Authorization: `Bearer ${token}` },
});
if (res.status === 401) {
const fresh = await sdk.auth.getSession({ refresh: true });
// 用 fresh.token 重試一次
}後端驗證方式與 401 的處理見網路與登入身分。