ohayolibs
Version:
Ohayo is a set of essential modules for ohayojp.
41 lines (30 loc) • 1.35 kB
Markdown
---
order: 2
title: TokenService
type: Documents
---
`ITokenService` 接口包含了一些对 Token 操作的服务类,例如获取当前 Token 信息:
```ts
constructor(@Inject(DA_SERVICE_TOKEN) private tokenService: ITokenService) {
console.log(tokenService.get().token);
// 如果是 JWT
console.log(tokenService.get<JWTTokenModel>(JWTTokenModel).token);
}
```
## 过期刷新
订阅 `refresh` 后 Token 过期时会自动触发,当后端支持 Token 刷新可以,可以在过期前刷新 Token 来延长用户授权时长。
> **建议** `refresh` 在整个应用中只订阅一次。
## API
### 属性
| 参数名 | 类型 | 描述 |
|-----|----|----|
| `[login_url]` | `string` | 获取 `OhayoAuthConfig` 配置的登录地址 |
| `[referrer]` | `AuthReferrer` | 获取授权失败前路由信息 |
| `[refresh]` | `Observable<ITokenModel>` | 订阅刷新,订阅时会自动产生一个定时器,每隔一段时间进行一些校验;**注意** 会多次触发,请务必做好业务判断 |
### 方法
| 方法名 | 返回类型 | 描述 |
|-----|------|----|
| `change()` | `Observable<ITokenModel>` | 监听 Token 变化回调 |
| `set(data: ITokenModel)` | `boolean` | 设置 Token |
| `get(type?: any)` | `ITokenModel` | 获取 Token |
| `clear(options?: { onlyToken: boolean })` | `void` | 清空 Token |