ciam-node-sdk
TypeScript icon, indicating that this package has built-in type declarations

1.1.2 • Public • Published

一、CIAM控制台链接

产品快速入口

二、SDK概览

ciam-node-sdk 提供以下登录鉴权方法:

方法名称 描述 备注
generateLoginUrl 生成认证登录URL -
fetchToken 通过code获取token -
getUser 获取用户信息 -
logout 退出登录 -

三、SDK接口说明

1. 初始化

  • 代码示例
const { NodeClient } = require('ciam-node-sdk'); // node-sdk
const ciam = new NodeClient({
  clientId: ‘your-clientid', // 此处为CIAM的应用ID,CIAM应用中获取
  userDomain: 'your-userDomain', // 此处为租户域名,CIAM域名管理中获取
  redirectUri:'your-redirectUri', // 此处为回调地址,CIAM应用管理中获取
  logoutRedirectUrl: 'your-logoutRedirectUrl', // 此处为退出回调地址,CIAM应用管理中获取
  scopes: ['openid'],
  protocol: 'OIDC_PKCE',
});
  • 参数说明
参数名 类型 是否必填 长度限制 描述
clientId string - 管理端添加的小程序应用ID
userDomain string - 租户域名(自定义域名获取)
redirectUri string - 登录成功后跳转的URL
logoutRedirectUrl string - 登录退出后跳转的URL
scopes array[Agreement] - 遵循oauth2.0规范,默认为openid
protocol string - OIDC_PKCE(默认)、OIDC_DEFAULT

2. 生成认证登录URL

用于生成登录URL,实现快速跳转到CIAM登录页面。

  • 代码示例
// 登录CIAM
app.get('/login', async (req, res) => {
  const url = await ciam.generateAuthUrl();
  res.redirect(url);
})

3. 获取token和用户信息

该方法用于当CIAM登录成功时,根据页面返回的code调用fetchToken,获取到的token用于获取用户信息。

  • 代码示例
// 处理redirect回调
app.get('/callback', async (req, res) => {
  const { code } = req.query;
  const result = await ciam.fetchToken(code);
  const { access_token, id_token } = result;
  const userInfo = await ciam.getUser();
  req.session.user = { ...userInfo };
  res.redirect('/');
})
  • fetchToken参数说明
参数名 类型 是否必填 长度限制 描述
code string 与CIAM认证返回的code相同 该参数由CIAM托管并返回

4. 退出登录

该方法用于退出CIAM登录。

  • 代码示例
// 退出CIAM登录
app.get('/logout', async (req, res) => {
  if (!req.session.user) {
    res.redirect('/');
  }
  const url = await ciam.logout();
  req.session.destroy();
  res.redirect(url);
})

sample下载

TODO

更新日志

1.1.0 breakchange 去掉pkce模式

1.0.0 feat 支持pkce、授权码模式

Readme

Keywords

none

Package Sidebar

Install

npm i ciam-node-sdk

Weekly Downloads

101

Version

1.1.2

License

none

Unpacked Size

324 kB

Total Files

34

Last publish

Collaborators

  • shingao