sso 登出_GitHub - Authing/AuthingSSO: Authing CAS 统一单点登录、登出 SDK。

本文档介绍了如何使用 Authing SSO SDK 进行单点登录、查询登录状态和单点登出操作。提供了 NPM 和 CDN 两种安装方式,并详细解释了各个方法的使用示例,包括发起登录、窗口登录、注册跳转、查询登录状态和登出功能。
摘要由CSDN通过智能技术生成

AuthingSSO

Authing SSO SDK 用于发起 SSO 登录、查询 SSO 登录状态、单点登出。

安装

通过 NPM 安装

$ npm install @authing/sso --save

接着可以通过以下方式使用

import AuthingSSO from '@authing/sso';

通过 CDN 安装

console.log(AuthingSSO);

开始使用

发起登录

跳转登录

import AuthingSSO from '@authing/sso';

let auth = new AuthingSSO({

appId: 'SSO_APP_ID',

appType: '可填:oauth/oidc', // 默认 oidc

appDomain: 'SSO_APP_DOMAIN',

});

// 发起单点登录,会跳转到登录页面,采用授权码模式,需要相关应用开启授权码模式

auth.login();

窗口登录

import AuthingSSO from '@authing/sso';

let auth = new AuthingSSO({

appId: 'SSO_APP_ID',

appType: '可填:oauth/oidc', // 默认 oidc

appDomain: 'SSO_APP_DOMAIN',

});

// 发起单点登录,会弹出一个窗口,里面是登录页面,采用授权码模式,需要相关应用开启授权码模式

auth.windowLogin();

业务域名回调地址需要托管一个 html 文件,用于将得到的 code access_token id_token 等参数,通过 postMessage 的方式发送给父窗口,然后将本窗口关闭。

例如,回调地址填写的是 https://example.com/handle.html 这个 html 内部需要编写一段发送 postMessage 的代码,负责从 url 中取出相关参数并传递给父窗口。

跳转注册页

有时你可能希望让用户跳转到注册页面,使用示例如下:

import AuthingSSO from '@authing/sso';

let auth = new AuthingSSO({

appId: 'SSO_APP_ID',

appType: '可填:oauth/oidc', // 默认 oidc

appDomain: 'SSO_APP_DOMAIN',

});

// 调用此函数可以直接跳转到注册页面

auth.register();

查询登录状态

let res = await auth.trackSession();

/**

* {

* session: { appId: 'xxx', type: 'oidc/oauth', userId: 'yyy'},

* userInfo: {

* "_id": "USER_ID",

* "email": "USER_EMAIL",

* "registerInClient": "CLIENT_ID",

* "token": "JTW_TOKEN",

* "tokenExpiredAt": "2019-10-28 10:15:32",

* "photo": "PICTURE",

* "company": "",

* "nickname": "NICKNAME",

* "username": "USERNAME",

* },

* urlParams: {

* code: 'xxx', // 这些参数是从 url 中获取到的,需要开发者自己存储以备使用

* id_token: 'ID_TOKEN',

* access_token: 'ACCESS_TOKEN'

* }

* }

*

* 如果 session 不存在,返回:

*

* {

* session: null

* }

* */

登出

let res = await auth.logout();

/**

* {

* message: "单点登出成功",

* code: 200

* }

* */

API

AuthingSSO.prototype.constructor

构造函数,接受一个对象作为参数。对象中的参数列表如下:

参数名

是否必填

描述

默认

appId

SSO 应用的 ID

-

appDomain

SSO 应用域名,例如 app1.authing.cn

-

appType

SSO 应用的 类型,可选值为 oidc,oauth

oidc

responseType

SSO 应用授权流程,可选值为 code,implicit

code

redirectUrl

SSO 应用回调域名

在 Authing 控制台配置的第一个业务域名

nonce

随机数

随机数

timestamp

时间戳

当前时间戳

示例:

let auth = new AuthingSSO({

appId: 'SSO_APP_ID',

appType: 'oidc',

appDomain: 'SSO_APP_DOMAIN',

});

AuthingSSO.prototype.login

请求应用的授权地址,进行登录。

示例:

auth.login();

AuthingSSO.prototype.trackSession

查询单点登录状态,已登录时会返回会话信息和用户信息。

示例:

let res = await auth.trackSession();

/**

* {

* session: { appId: 'xxx', type: 'oidc/oauth', userId: 'yyy'},

* userInfo: {

* "_id": "USER_ID",

* "email": "USER_EMAIL",

* "registerInClient": "CLIENT_ID",

* "token": "JTW_TOKEN",

* "tokenExpiredAt": "2019-10-28 10:15:32",

* "photo": "PICTURE",

* "company": "",

* "nickname": "NICKNAME",

* "username": "USERNAME",

* },

* urlParams: {

* code: 'xxx', // 这些参数是从 url 中获取到的,需要开发者自己存储以备使用

* id_token: 'ID_TOKEN',

* access_token: 'ACCESS_TOKEN'

* }

* }

*

* 如果 session 不存在,返回:

*

* {

* session: null

* }

* */

AuthingSSO.prototype.logout

从应用单点登出。

示例:

let res = await auth.logout();

/**

* {

* message: "单点登出成功",

* code: 200

* }

* */

AuthingSSO.prototype.getUrlHash

获取 Url 中的 Hash 部分内容,返回一个 JSON 对象。

示例:

let obj = auth.getUrlHash();

/**

* {

* id_token: 'xxx',

* access_token: 'xxx'

* }

* */

Get Help

Join us on Gitter: #authing-chat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值