|
| 1 | +# 浏览器指纹模块 |
| 2 | + |
| 3 | +<LastUpdated/> |
| 4 | + |
| 5 | +> 此模块主要用来管理 浏览器指纹 相关操作,快速使用浏览器指纹相关数据接口以及功能。 |
| 6 | +
|
| 7 | +使用方法: |
| 8 | + |
| 9 | +```javascript |
| 10 | +import { AuthenticationClient } from 'authing-js-sdk'; |
| 11 | +const authenticationClient = new AuthenticationClient({ |
| 12 | + appId: "AUTHING_APP_ID", |
| 13 | + appHost: 'https://{YOUR_DOMAIN}.authing.cn', |
| 14 | +}); |
| 15 | + |
| 16 | +authenticationClient.browserFingerprint.getBrowserFingers; // 获取指纹信息 & 设备 id |
| 17 | +authenticationClient.browserFingerprint.createDevice; // 浏览器设备上报 |
| 18 | +authenticationClient.browserFingerprint.myDevicesList; // 用户中心 - 列表 |
| 19 | +authenticationClient.browserFingerprint.myDevicesUnbind; // 用户中心 - 移除设备 |
| 20 | +authenticationClient.browserFingerprint.myDevicesLogout; // 用户中心 - 登出设备 |
| 21 | + |
| 22 | +``` |
| 23 | + |
| 24 | + |
| 25 | +## 获取指纹信息 & 设备 id |
| 26 | + |
| 27 | +#### 示例 |
| 28 | + |
| 29 | +```js |
| 30 | +import { AuthenticationClient } from "authing-js-sdk"; |
| 31 | + |
| 32 | +const authenticationClient = new AuthenticationClient({ |
| 33 | + appId: "AUTHING_APP_ID", |
| 34 | + appHost: 'https://{YOUR_DOMAIN}.authing.cn', |
| 35 | +}); |
| 36 | + |
| 37 | +const { browserId, deviceFingers } = await authenticationClient.browserFingerprint.getBrowserFingers(); |
| 38 | + |
| 39 | +const { |
| 40 | + userAgentFingerprint, //浏览器用户代理指纹 |
| 41 | + audioFingerprint, //音频设置和硬件特征指纹 |
| 42 | + canvasFingerprint, //2D图像和动画绘制特征指纹 |
| 43 | + screenResolutionFingerprint, //浏览器分辨率指纹 |
| 44 | + webglFingerprint, //显卡及驱动程序指纹 |
| 45 | + fontsFingerprint, //字体及输入设备特征指纹 |
| 46 | + pluginsFingerprint, //浏览器预装插件指纹信息 |
| 47 | +} = deviceFingers; |
| 48 | + |
| 49 | +console.log(browserId); //浏览器设备id |
| 50 | +``` |
| 51 | + |
| 52 | +## 浏览器设备上报 |
| 53 | +#### 示例 |
| 54 | + |
| 55 | +```js |
| 56 | +await authenticationClient.browserFingerprint.createDevice() |
| 57 | +``` |
| 58 | + |
| 59 | +#### 返回值 |
| 60 | + |
| 61 | +```json |
| 62 | +boolean : true / false |
| 63 | +``` |
| 64 | + |
| 65 | + |
| 66 | +## 订阅设备事件 |
| 67 | + |
| 68 | +#### 示例 |
| 69 | + |
| 70 | +```js |
| 71 | +import { AuthenticationClient } from "authing-js-sdk"; |
| 72 | + |
| 73 | +const authenticationClient = new AuthenticationClient( { |
| 74 | + appId: "AUTHING_APP_ID", |
| 75 | + appHost: 'https://{YOUR_DOMAIN}.authing.cn', |
| 76 | + socketUri:'YOUR_SOCKET_URL', |
| 77 | + token:'YOUR_TOKEN', |
| 78 | + }); |
| 79 | + |
| 80 | +//获取设备id |
| 81 | +const { browserId } = await authenticationClient.browserFingerprint.getBrowserFingers(); |
| 82 | +//事件监听 |
| 83 | +authenticationClient. event.sub( |
| 84 | + 'authing.device.force-logout', |
| 85 | + (msgDataStr: string) => { |
| 86 | + const msgData = JSON.parse(msgDataStr); |
| 87 | + const { appId: msgAppid, logoutType, deviceId } = msgData; |
| 88 | + //对比必须是当前 appid 和当前设备 |
| 89 | + if (msgAppid === appId && deviceId === browserId) { |
| 90 | + switch (logoutType) { |
| 91 | + case 0: |
| 92 | + console.log('使其他设备登出') |
| 93 | + break; |
| 94 | + case 1: |
| 95 | + console.log('个人中心 - 设备解绑') |
| 96 | + break; |
| 97 | + case 2: |
| 98 | + console.log('用户列表 - 个人详情 - 挂起设备') |
| 99 | + break; |
| 100 | + case 3: |
| 101 | + console.log('设备管理 - 挂起设备') |
| 102 | + break; |
| 103 | + case 4: |
| 104 | + console.log('用户列表 - 个人详情 - 禁用设备') |
| 105 | + break; |
| 106 | + case 5: |
| 107 | + console.log('设备管理 - 禁用设备') |
| 108 | + break; |
| 109 | + case 6: |
| 110 | + console.log('用户列表 - 个人详情 - 移除设备(解绑)') |
| 111 | + break; |
| 112 | + case 7: |
| 113 | + console.log('设备管理 - 删除设备') |
| 114 | + break; |
| 115 | + default: |
| 116 | + break; |
| 117 | + } |
| 118 | + } |
| 119 | + }, |
| 120 | + () => {} |
| 121 | +); |
| 122 | +``` |
| 123 | + |
| 124 | +## 用户中心 - 列表 |
| 125 | +#### 示例 |
| 126 | + |
| 127 | +```js |
| 128 | +import { AuthenticationClient } from "authing-js-sdk"; |
| 129 | + |
| 130 | +const authenticationClient = new AuthenticationClient({ |
| 131 | + appId: "AUTHING_APP_ID", |
| 132 | + appHost: 'https://{YOUR_DOMAIN}.authing.cn', |
| 133 | +}); |
| 134 | + |
| 135 | +const list = await authenticationClient.browserFingerprint.myDevicesList() |
| 136 | +``` |
| 137 | + |
| 138 | +#### 示例数据 |
| 139 | + |
| 140 | +```json |
| 141 | +[ |
| 142 | + { |
| 143 | + "device": { |
| 144 | + "name": "chrome/114.0.0.0", |
| 145 | + "type": "Browser", |
| 146 | + "status": "activated", |
| 147 | + "os": "Mac OS", |
| 148 | + "version": "114.0.0.0", |
| 149 | + "mod": null, |
| 150 | + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36", |
| 151 | + "deviceId": "47a5d2ab86d90e6d2a8b7efcba939eec" |
| 152 | + }, |
| 153 | + "lastLoginTime": "2023-07-06T02:25:08.879Z", |
| 154 | + "lastIp": "49.7.66.98", |
| 155 | + "online": true |
| 156 | + } |
| 157 | +] |
| 158 | +``` |
| 159 | + |
| 160 | + |
| 161 | +## 用户中心 - 移除设备 |
| 162 | +#### 参数 |
| 163 | + |
| 164 | +- `deviceUniqueId` \<string\> 当前用户的设备唯一标识 |
| 165 | + |
| 166 | +#### 示例 |
| 167 | + |
| 168 | +```js |
| 169 | +await authenticationClient.browserFingerprint.myDevicesUnbind('47a5d2ab86d90e6d2a8b7efcba939eec') |
| 170 | +``` |
| 171 | + |
| 172 | +#### 返回值 |
| 173 | + |
| 174 | +```json |
| 175 | +boolean : true / false |
| 176 | +``` |
| 177 | + |
| 178 | +## 用户中心 - 登出设备 |
| 179 | +#### 参数 |
| 180 | + |
| 181 | +- `deviceUniqueId` \<string\> 当前用户的设备唯一标识 |
| 182 | + |
| 183 | +#### 示例 |
| 184 | + |
| 185 | +```js |
| 186 | + await authenticationClient.browserFingerprint.myDevicesLogout('47a5d2ab86d90e6d2a8b7efcba939eec') |
| 187 | +``` |
| 188 | + |
| 189 | +#### 返回值 |
| 190 | + |
| 191 | +```json |
| 192 | +boolean : true / false |
| 193 | +``` |
0 commit comments