1.1.2 • Published 2 years ago

ciam-node-sdk v1.1.2

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

一、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',
});
  • 参数说明
参数名类型是否必填长度限制描述
clientIdstring-管理端添加的小程序应用ID
userDomainstring-租户域名(自定义域名获取)
redirectUristring-登录成功后跳转的URL
logoutRedirectUrlstring-登录退出后跳转的URL
scopesarrayAgreement-遵循oauth2.0规范,默认为openid
protocolstring-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参数说明
参数名类型是否必填长度限制描述
codestring与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、授权码模式

1.1.2

2 years ago

1.1.1

2 years ago

1.1.1-beta.12

2 years ago

1.1.1-beta.11

2 years ago

1.1.1-beta.14

2 years ago

1.1.1-beta.13

2 years ago

1.1.1-beta.10

2 years ago

1.1.1-beta.3

2 years ago

1.1.1-beta.7

2 years ago

1.1.1-beta.5

2 years ago

1.1.1-beta.2

2 years ago

1.1.1-beta.0

2 years ago

1.0.0

3 years ago

1.0.0-beta.3

3 years ago