0.0.6 • Published 2 years ago

seiue-c3-session v0.0.6

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

Seiue Chalk3.0 Session

Seiue Chalk 3 登录机制,目前,可以通过这个包获取到在 Seiue Passport 登录过的用户的信息。

Get Started

import { SeiueSession } from '@seiue/session'

// 首先设置环境变量
SeiueSession.setEnv({
  SERVER_PASSPORT: 'Pssport 服务地址',
  CLIENT_WEB_CLIENT_ID: "客户端 ID"
})

SeiueSession.create().then(res => {
  // 登录成功后,res 将会返回登录信息
})

登录方式

Passport 登录

通过访问 线上登录地址开发登录地址 并进行登录。登录成功后,再次访问接入了 SeiueSession 的应用,即能获取到登录信息。

其他登录形式等待支持。

修改 Hosts

由于各浏览器强制要求 SameSite policy,与 Cookie 相关的 same-site 将会被默认的设置为 lax。这使得我们从 passport 登陆并获取到的 cookie 无法发送给 localhost,在本地调试时会无法保持登录的 cookie。

因此我们需要修改 /etc/hosts 文件将 localhost 映射为与开发服务器相同的域名:

# 在 hosts 中添加:

127.0.0.1 local.seiue.com

然后在开发中请用 http://local.seiue.com:{port} 替代 localhost:{port}。

如果你在访问 local.seiue.com 时 Chrome 总是自动将 http 修改为 https 导致访问失败,请在 chrome://net-internals/#hsts 中找到 Delete domain security policies,然后输入 local.seiue.com 并点击删除。

如果仍不行,注意一下自己是否使用了魔法上网。如果关闭魔法上网后可以正常访问,那么可以将 local.seiue.com 加入到「系统偏好设置 - 网络 - 代理 - 忽略这些主机和代理设置」当中(此时魔法上网可以开启)

SeiueSession Apis

SeiueSession.setEnv(envs) 配置环境变量

在使用其他 Api 前,请先完整配置环境变量。

参数

  1. envs - Oeject,envs.SERVER_PASSPORT: string, envs.CLIENT_WEB_CLIENT_ID: string - 环境变量

返回值

void

SeiueSession.create 获取身份信息

参数

void

返回值

登录信息,数据结构为

{
  // 登录方式
  authType: string | null
  // Token 信息
  oAuthToken: {
    /**
     * Token 类型,目前仅支持 Bearer
     */
    tokenType: string
    /**
     * Token 过期时间,单位为秒
     */
    expiresIn: number
    /**
     * 请求应该携带的 Access Token
     */
    accessToken: string
    /**
     * 用于刷新 Access Token 的 Refresh Token,有效期为 30 天, 仅 password 授权类型存在此字段。
     */
    refreshToken: string | undefined
  } | null
  // 用户 Reflection id
  rid: number | null
  // 用户 User id
  uid: number | null
  // 用户学校 id
  schoolId: number | null
  // 获取 Token 的时间
  oAuthTokenFetchedAt: number
}

SeiueSession.getSessionState 登录后,直接获取身份信息

在登录后,可以通过该方法再次获取缓存的登录信息。

参数

void

返回值

SeiueSession.create

SeiueSession.destroy 退出登录

参数

void

返回值

void

SeiueSession.refreshOAuthTokenIfNeeded 刷新 Token

判断缓存的 Token 是否过期,然后重新获取新的 Token。

参数

void

返回值

若刷新成功,则返回 token 信息,同 oAuthToken

Notes

  • 目前仅适用于会部署在希悦内部的项目

Bug and Discussions

如果你遇到 bug,可以通过相关微信群或者联系 lrc@seiue.com

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago