{"_id":"@xbasesdk/auth","_rev":"72-86ba35df22ca66777947d623ce4c01a4","name":"@xbasesdk/auth","dist-tags":{"latest":"1.0.37-beta"},"versions":{"1.0.28-beta":{"name":"@xbasesdk/auth","version":"1.0.28-beta","author":{"name":"Xbase"},"description":"xbase auth module","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"eslint":"eslint \"{src,__tests__}/**/*.ts\"","eslint:fix":"eslint --fix \"{src,__tests__}/**/*.ts\"","clean":"rm -rf dist","compile":"tsc","build":"yarn clean && yarn compile"},"license":"MIT","_id":"@xbasesdk/auth@1.0.28-beta","_nodeVersion":"16.8.0","_npmVersion":"7.21.0","dist":{"integrity":"sha512-xYbAH5gQfszHWvtOIlgFMq3t6al2dKxMPv2MPxOTMiI5U7d4XZzsn6Ch2+4V/j/0oH1zfGU8mMG04h+UkHumSg==","shasum":"6c3fad61a787628f7a2a43be10373da62795244d","tarball":"https://registry.npmjs.org/@xbasesdk/auth/-/auth-1.0.28-beta.tgz","fileCount":45,"unpackedSize":137812,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhLe/YCRA9TVsSAnZWagAAOSgP/RdVNmd/JtrdlgFasO6E\n+92X1V+iRvHQaEhx0WVOaK7/P2oU6rWXo+EqRYlEhJm/JiCXkQD2atPDKI8o\n0rl8M+0KPErQ6YIAhf60G35yzkyFkBkNktVfaP3WjPvEYotn+4Z/CkefxwtE\ntmU+6NMTP8/qgPzdCqnY0nv9jdBsmcMzYVFIH0DUlC0c21wLOOqw/ALEvNuF\nxanWCCmUYfSLsJziKT/nFYYNXehBDKeMRmM50FOA0eAu3YknQ1s3dpjYhQOk\nrXKsycXQkZJ/H0wwNOPxoiu8ajJMavWczNBFO9k4j9JsT575MqL+DngUNX+1\nyFg/4gM8NCfH8prjS8MYc72MYnsigDJ3bWA0ywuaWxxSk4JaDKHYJeeSb1o3\nVxnHkFI5ZsB2LMs6FatkhTYWe7a0QRMYJmNf0Thg4739JVoiYkYxfSSvIh3o\nLCCz/UrKNmDIyj2t9z5or80Jcv1PAWitWdbLM3VyhLpGkXWkLKkr1eLgIdjz\nva9nGyN2gD6wCJwwboGxOnOZy9VQzC31DqgQ+8W1F4rGK8R6sQ9PGmLh8MaZ\naxzJi1OsUXVZ74p6HzITdBB/aTaXmXfKLaV6hYXwnvBG9ZTaBBvbc8PfkKbV\nz+etvbXUMOi2Q3dKD1HP0/CeUS9tRtPt9wLXWgf9h1K6Vn8RBvHIdJbGO6xQ\n9Mhu\r\n=PXoi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCk0MxuTzx0CbmNpsW33zesOUlbR4/rylprzUMXU4d6PAIhANQaZ99oEF9XOcbXTqdf2RZjNnQtVYFrSYQ5sxn+7XMh"}]},"_npmUser":{"name":"xbasesdk","email":"leenanxi@gmail.com"},"directories":{},"maintainers":[{"name":"xbasesdk","email":"leenanxi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/auth_1.0.28-beta_1630400472421_0.8297083062413357"},"_hasShrinkwrap":false},"1.0.35-beta":{"name":"@xbasesdk/auth","version":"1.0.35-beta","description":"auth apis for xbase","author":{"name":"xbase"},"main":"./dist/index.js","types":"./dist/index.d.ts","typesVersions":{">=4.1":{"*":["ts4.1/*"]}},"license":"MIT","scripts":{"eslint":"eslint \"{src,__tests__}/**/*.ts\"","eslint:fix":"eslint --fix \"{src,__tests__}/**/*.ts\"","clean":"rm -rf dist","compile":"tsc","build":"yarn clean && yarn compile"},"engines":{"node":"^12.14.1 || >=14.0.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^4.30.0","@typescript-eslint/parser":"^4.30.0","eslint":"^7.32.0"},"_id":"@xbasesdk/auth@1.0.35-beta","_nodeVersion":"16.8.0","_npmVersion":"7.21.0","dist":{"integrity":"sha512-J7sc4qZo7Ywb1BDrtWHm6KsPleNVtlaBrtSnb3eGqIHY4cZt1tiGYwXRlc6hvOyC5oxDh32s4QIfQujjcDDAGw==","shasum":"3b641d8d6ef1010e448a8f3db5d119346a5ade32","tarball":"https://registry.npmjs.org/@xbasesdk/auth/-/auth-1.0.35-beta.tgz","fileCount":49,"unpackedSize":159104,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhL1qkCRA9TVsSAnZWagAATcsP/2ooZ0hIfLbpif0bEN/s\ndkxKM2c3a78DzHVX07fqSsSNLjLfV7piWNSMyVeNfLUE3RgbiBIZglhojJ5A\ngRwH2kWIHsekIIw2Ud+EB9wFMnxfJyFF9EUF4S9tRelkn/2tHArUCy01dQs/\nzLBMpliNPdKnB/QUnlJmQPWEiGsAT9qNyC4nHFwv1n4pqBzsvx7lm2JoUxtC\nVkgNoOcMimOPe2MNzEKTJv/lVa7uhHbxQvVuzhEnCJAKy/6o/dGD0icPSSxY\nJUbEFh0CTOXk3omobP8FgFJZuwfgV7qhkqEH+qOQhH34h9dhpXFnO8zaWUdS\ndCvFv5Fvl0dXnEFvMYOTylIaBFn635c4LRiUXKVuLJjwXsVWCSRnxlcVVkfX\njki0FH8p5QoHnOO7wPv/3i7vputaTOfcP0orYsPxk1LDVf8UqA1tvI6ppwKo\n3n9Q5tVVd/ZVf2N2aQnpW/fjU+ZmSXPDctYv5pAvUO2Yo57ap17o2JKQ+ESE\ncv8qvt9XVm9anFZ59MWzQ8TeXHoCqCwTrGbfj7fHq/R5zOtBIzSOaWnJ659M\niishP5AUZWezuVSfjoNdeHwkplDSvw5ZdJfOa44ij9dGWGJ38LEuPN5fJvPW\npUM4XjkbltbGzdTsCrBpBUXix5QZigVUPnCHN6PHeFj4xZZApojlXWiW8DRL\n566l\r\n=GOJW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMBevM75lQLKZ6kO/A8ZiTOXhtCQqBVrqPpTnieGuCiAIgI6PjcpiUEA+dCCC8TzNw9Ike8gY5E9BAhYi8pGTpB8Q="}]},"_npmUser":{"name":"xbasesdk","email":"leenanxi@gmail.com"},"directories":{},"maintainers":[{"name":"xbasesdk","email":"leenanxi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/auth_1.0.35-beta_1630493348336_0.7419708145660315"},"_hasShrinkwrap":false},"1.0.36-beta":{"name":"@xbasesdk/auth","version":"1.0.36-beta","description":"auth apis for xbase","author":{"name":"xbase"},"main":"./dist/index.js","types":"./dist/index.d.ts","typesVersions":{">=4.1":{"*":["ts4.1/*"]}},"license":"MIT","scripts":{"eslint":"eslint \"{src,__tests__}/**/*.ts\"","eslint:fix":"eslint --fix \"{src,__tests__}/**/*.ts\"","clean":"rm -rf dist","compile":"tsc","build":"yarn clean && yarn compile"},"engines":{"node":"^12.14.1 || >=14.0.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^4.30.0","@typescript-eslint/parser":"^4.30.0","eslint":"^7.32.0"},"_id":"@xbasesdk/auth@1.0.36-beta","_nodeVersion":"16.8.0","_npmVersion":"7.21.0","dist":{"integrity":"sha512-7K+wV6Nwx1GmLllIy6ZFr+rgZThIqJoCEa9RiPBCIL5t6yhBgpWabVpR686FdmYAoUB/NoWplXWnPQDFk8ZrWQ==","shasum":"990fc4e860312d1cf485a04a916941a51f6605d0","tarball":"https://registry.npmjs.org/@xbasesdk/auth/-/auth-1.0.36-beta.tgz","fileCount":49,"unpackedSize":162606,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhMFrsCRA9TVsSAnZWagAATzUP/Rj99NLw+XQ/orMbudJr\nvJcCWMpql/JFKFEjITG5eFlx+6UTBudO61es+DgABU3NR+h3J5scTNBMljFv\nezZFkzPbosF3t1FSAcX+lFYOtL6V7Xclfw4lUw/lEJ1+VVxyzZCNSvRFeFOw\nYYxR0C4wjITs27udGCeHFuNV8bFpiae4jOAoBKZelaeOXZZK6dx2Pb6QMA2C\n/ubNGFcOJzaLvUIHc/JAHUKDbZSyQ4hXy8+3LXeKXZr5G90zDNb6vK3KEhyT\nvCS2z+XFQsXSLT9HF+5/K7QO2hyUNLoicH/sXVKD3tbpIcWvXGfSTPlo9W10\nnK1gK/QTB1wCLKx2REBkWavLoSJjuDUhoFbUe/JcDUAYjzzRgj6+ZcOlbFtu\nP317SiTFdk7n1XYuQfCkHr54BLKE1NY9SY8nyl/ZV9355m3Waqf+39RpoaVp\nMT4llSEq8jkqKvEN/9rFoeTfdVjhLgwje/82VxJDyvyxdCX6v6hOi1wabXWx\nh212jUHkWjq2zHEUqNbqxJtTkaoX94SqPwmUjt27J5ZXkh56bqLGphVk06RQ\nk7CRlvarLI2Vc57JVvyfnni5Ch1/icVhdZvLaiNVi7wNT7lKuGJKkOk67L2h\noYKBuRrqfLvzd+ogEiIbCCqzgoQU05hV+cLf0Nx22hnOF1ixwqe3wcsQf5TT\nMjjk\r\n=wiNu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDWIDOk/d2sTML1l3cyimeRtQGIjnDY4nFN4QevENN2VgIhAJxtBznLcffzuXoBrFmqcxNcKf0kLHernESX/LglsRrX"}]},"_npmUser":{"name":"xbasesdk","email":"leenanxi@gmail.com"},"directories":{},"maintainers":[{"name":"xbasesdk","email":"leenanxi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/auth_1.0.36-beta_1630558955924_0.7315788374588474"},"_hasShrinkwrap":false},"1.0.37-beta":{"name":"@xbasesdk/auth","version":"1.0.37-beta","description":"auth apis for xbase","author":{"name":"xbase"},"main":"./dist/index.js","types":"./dist/index.d.ts","typesVersions":{">=4.1":{"*":["ts4.1/*"]}},"license":"MIT","scripts":{"eslint":"eslint \"{src,__tests__}/**/*.ts\"","eslint:fix":"eslint --fix \"{src,__tests__}/**/*.ts\"","clean":"rm -rf dist","compile":"tsc","build":"yarn clean && yarn compile"},"engines":{"node":"^12.14.1 || >=14.0.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^4.30.0","@typescript-eslint/parser":"^4.30.0","eslint":"^7.32.0"},"_id":"@xbasesdk/auth@1.0.37-beta","_nodeVersion":"16.8.0","_npmVersion":"7.21.0","dist":{"integrity":"sha512-Ib3I1Vvc27rJpvbogRamuqN4VTMHu7vwFPddKKgtgtcfDHw5TGLSNof5AfrN8xpySBe5EGudW6pKkoJyyrDGnQ==","shasum":"65951ebc2ed092fbc0296c325a062281257c1f35","tarball":"https://registry.npmjs.org/@xbasesdk/auth/-/auth-1.0.37-beta.tgz","fileCount":49,"unpackedSize":163710,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhMGKgCRA9TVsSAnZWagAAmNQQAJOe94H3Wbc9dJG6SWq7\nkBNIUX0i1pHtJkQBo3fa9OdlF30IkaXx0YTOtq6VILFPrvGbXI1to5Twf/5B\n9g7FiqYmE22xVe/BDHnP0rtWc/XvdmhbXx3CdKe2di7W9JCf05cCKfsEM4Ko\nc05S+PUIiDf956P7poN0kJo54RJXBv5utiypNJiPTLFOYpJtLOHyJlC93AFB\nhzvuIz6jLTT6PVwcljgJEELcVaa9uktoJxcWvAUblhpOH2EFAL4ZvBYtfNkn\n0DAC+5NKr7tCo6aOn2Kc8TqBf4pPvuW3MoD2nkS+sISOSngrXSH6axFnZhfR\n7nROSZ0nOfDLVCDTz3z+RPuWUIBddEnwm2bKgzZQv6EcMMLubnOEXUrDBbtn\nWuibBlDoJX+43cJsS2xhT0rBscKx74ePo9R5d/PeQ/UHrdLH3pO/LX6AeIZ2\n7ftjuo+MhyY46jPIvm0bZcWqz5rBqZAGPAP2LsawYWDyLACHHl35JrRVV8x6\nrZQnBpzpPK6XbuaiWHKIIlZKa2Pwobv5RTcJM1r+e9qdPcGFUraXDDFOLKEX\ncdfDvpij27U9XwgPy7XK/WgIwzo6uFQKcKxuz7jbwN1ypInC4Xqg7u4qHt0A\nVEpvblBBzBKLqEG9AwP1NZ65gfskohjikW5NLpp8D8y6wUW6JC7ZYg9/1gRf\nzozJ\r\n=Kokg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHSFKg5ndKIuHQ49YxelgBQlPQ3TAoBqq+0RYlgj9COjAiEAoHlwwKAL0CTgqc5gslqzglQ3y4mcSXdKLhN6pLBTc8Y="}]},"_npmUser":{"name":"xbasesdk","email":"leenanxi@gmail.com"},"directories":{},"maintainers":[{"name":"xbasesdk","email":"leenanxi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/auth_1.0.37-beta_1630560928574_0.8203248859716163"},"_hasShrinkwrap":false}},"time":{"created":"2021-08-10T11:46:40.213Z","1.3.0":"2021-08-10T11:46:40.396Z","modified":"2022-04-11T10:26:45.057Z","1.3.1":"2021-08-10T11:53:47.069Z","1.3.2-beta":"2021-08-12T07:30:09.731Z","1.3.3-beta":"2021-08-19T03:18:43.653Z","1.3.4-beta":"2021-08-19T05:14:26.636Z","1.3.5-beta":"2021-08-19T05:23:14.334Z","1.3.6-beta":"2021-08-20T03:13:39.798Z","1.3.7-beta":"2021-08-20T03:22:27.976Z","1.3.8-beta":"2021-08-20T04:47:53.517Z","1.3.9-beta":"2021-08-20T05:48:51.665Z","1.3.10-beta":"2021-08-20T10:02:26.440Z","1.3.11-beta":"2021-08-20T10:02:48.111Z","1.3.12-ts":"2021-08-20T12:09:13.833Z","1.3.13-beta":"2021-08-20T12:11:27.917Z","1.3.14-beta":"2021-08-20T12:18:04.976Z","1.3.15-beta":"2021-08-20T12:22:50.291Z","1.3.17-beta":"2021-08-20T12:24:31.242Z","1.3.18-beta":"2021-08-20T12:33:37.891Z","1.3.19-beta":"2021-08-20T12:36:08.403Z","1.3.20-beta":"2021-08-20T13:03:41.555Z","1.3.21-beta":"2021-08-26T07:52:23.175Z","1.3.22-beta":"2021-08-26T07:54:24.395Z","1.3.23-beta":"2021-08-26T09:11:45.945Z","2.0.0-alpha":"2021-08-31T08:41:03.518Z","1.3.24-beta":"2021-08-31T08:46:34.483Z","2.0.1-alpha":"2021-08-31T08:49:18.873Z","3.0.1-alpha":"2021-08-31T08:50:28.043Z","1.0.26-beta":"2021-08-31T08:56:56.443Z","1.0.27-beta":"2021-08-31T08:59:31.331Z","1.0.28-beta":"2021-08-31T09:01:12.622Z","1.0.29-beta":"2021-08-31T09:29:56.109Z","1.0.30-beta":"2021-09-01T07:08:16.442Z","1.0.31-beta":"2021-09-01T08:02:37.268Z","1.0.33-beta":"2021-09-01T08:11:15.365Z","1.0.34-beta":"2021-09-01T08:25:31.384Z","1.0.35-beta":"2021-09-01T10:49:08.506Z","1.0.36-beta":"2021-09-02T05:02:36.122Z","1.0.37-beta":"2021-09-02T05:35:28.710Z"},"maintainers":[{"name":"xbasesdk","email":"leenanxi@gmail.com"}],"description":"auth apis for xbase","author":{"name":"xbase"},"license":"MIT","readme":"# xbase-sdk\n\n提供 oauth2 的登录相关功能。\n\n## 主要模块\n\nOAuth2Client oauth2 基础模块\n\nAuth 登录相关模块\n\n## 使用示例\n\n### 初始化对象\n\n```typescript\nimport { OAuth2Client, Auth } from '@xbasesdk/auth';\n// 组装需要使用的模块，下面的例子是组装 oAuth2Client（HTTP请求） 和 auth 两个\nclass XbaseClient {\n    public oAuth2Client: OAuth2Client;\n    public auth: Auth;\n    constructor(initOptions: any) {\n        this.oAuth2Client = new OAuth2Client(initOptions);\n        this.auth = new Auth({credentialsClient: this.oAuth2Client, ...initOptions});\n    }\n}\nconst config = {\n    apiOrigin: 'https://your_api_base_url',\n    clientId: 'your_api_client',\n};\nconst client = new XbaseClient(config);\n// 调用API\nconst loginState = await client.auth.hasLoginState()\n\n// 获取 accessToken\nconst accessToken =  await client.oAuth2Client.getAccessToken();\n\n// 用 OIDC Token 用自己的API\nexport interface ExampleData {\n    result?: string;\n}\nconst data = await client.oAuth2Client.request<ExampleData>(\"https://example.com\", {withCredentials:true})\nconsole.log(data.result)\n```\n\n### 账号登录\n\n```typescript\nauth.signIn({\n  username: 'test',\n  password: 'test',\n});\n```\n\n### 手机验证码登录/注册\n\n```typescript\nconst phoneNumber = '10012341234';\n// 短信验证码\nconst verificationCode = '******';\nconst verification = await auth.getVerification({\n  phone_number: '+86 ' + phoneNumber,\n  target: 'ANY',\n});\n\nlet verifyResult = await auth.verify({\n  verification_code: verificationCode,\n  verification_id: verification ? verification.verification_id : '',\n});\nlet isUser = verification ? verification.is_user : false;\n\nlet result;\nif (isUser) {\n  result = await auth.signIn({\n    username: '+86 ' + phoneNumber,\n    verification_code: verificationCode,\n    verification_token: verifyResult.verification_token,\n  });\n} else {\n  result = await auth.signUp({\n    phone_number: '+86 ' + phoneNumber,\n    password: '*******',\n    verification_code: verificationCode,\n    verification_token: verifyResult.verification_token,\n    local: 'zh-cn',\n    name: '100****1234',\n  });\n}\n```\n\n### 错误处理\n\n```typescript\ntry {\n  await auth.verify({\n    verification_code: verificationCode,\n    verification_id: verification ? verification.verification_id : '',\n  });\n} catch (error) {\n  if (error && error.error_uri === '/v1/auth/verification/verify') {\n    switch (error.error) {\n      case 'not_found': {\n        result = i18n.translate('error', 'User Not Found');\n        break;\n      }\n      case 'invalid_password': {\n        if (error.details !== undefined && error.details.length > 0) {\n          result =\n            i18n.translate('error', 'Certification failed, you still have') +\n            error.details[0].limit_remaining +\n            i18n.translate('error', 'chances. You can also') +\n            '' +\n            i18n.translate('error', 'Reset Login Password') +\n            '</a>';\n        } else {\n          result = i18n.translate('error', 'Password does not match');\n        }\n        break;\n      }\n      case 'user_pending': {\n        result = i18n.translate('error', 'The account is not activated');\n        break;\n      }\n      case 'user_blocked': {\n        result = i18n.translate('error', 'Account has been disabled');\n        break;\n      }\n      case 'invalid_status': {\n        if (error.details !== undefined && error.details.length > 0) {\n          let s = error.details[0].retry_delay;\n          s = s.substring(0, s.length - 1);\n          s = parseInt(s);\n          result =\n            i18n.translate(\n              'error',\n              'The password input error has reached the upper limit and the account will be locked ',\n            ) +\n            (s < 3600\n              ? s / 60 + i18n.translate('error', 'minute')\n              : s / 3600 + i18n.translate('error', 'hour'));\n        } else {\n          result = i18n.translate(\n            'error',\n            'Account has been temporarily locked',\n          );\n        }\n        break;\n      }\n      case 'invalid_two_factor': {\n        result = i18n.translate(\n          'error',\n          'Secondary authentication code does not match or has expired',\n        );\n        break;\n      }\n      case 'invalid_two_factor_recovery': {\n        result = i18n.translate(\n          'error',\n          'Recovery code does not match or has expired',\n        );\n        break;\n      }\n      default: {\n        result = i18n.translate('error', 'unknown');\n        break;\n      }\n    }\n  }\n}\n```\n\n## [更新日志](./CHANGELOG.md)\n","readmeFilename":"README.md"}