支付宝云开发业务 SDK(WEB 端)
bash
npm i @alipay/faas-biz-web-sdk
`
$3
参数:| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| envId | string | 是 | 云开发的 envId |
| userPoolUid | string | 是 | 云开发 UserPool 的 UID |
| persistence | string | 否 | 登录成功后会返回AccessToken+RefreshToken,通过 persistence 配置这两个 token 的存储位置,默认为 session:
- none,不持久化,当前浏览器窗口关闭或刷新登录态即丢失
- session,持久化在 SessionStorage 中,浏览器关闭登录态丢失
- local,持久化在 LocalStorage 中,浏览器关闭后登录态仍保存 |
| environment | string | 否 | 环境,当前仅支持生产(hz)环境,默认为 hz |
| useHttps | boolean | 否 | 是否使用 HTTPS,默认为 true |
UserPool 是在云开发创建出来的,会分配一个 Uid,一般一个应用使用一个 UserPool 即可,云开发也支持创建多个。
示例代码:
`javascript
import { Auth } from "@alipay/faas-biz-web-sdk";const auth = new Auth({
envId: "your-env-id",
userPoolUid: "your-userpool-uid",
persistence: "local"
});
`
$3
#### loginWithUserIdAndPassword()
接口功能:用户名密码登录
输入参数:| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| idpUserId | string | 是 | 用户UID |
| password | string | 是 | 密码 |
返回结果:
| 字段 | 类型 | 不为空 | 说明 |
| --- | --- | --- | --- |
| user | User | 是 | 用户信息 |
| loginType | string | 是 | 登录方式 |
| isAlipayAuth | boolean | 是 | 支付宝三方登录 |
| isUsernameAuth | boolean | 是 | 账密登录 |
示例代码:
`javascript
import { Auth } from "@alipay/faas-biz-web-sdk";const userPoolConfig = {
envId: 'your-env-id',
userPoolUid: 'your-userPool-uid',
};
const auth = new Auth(userPoolConfig);
auth.loginWithUsernameAndPassword(username, password).then((res) => {
// 登录成功
});
`
#### getAuthHeader()
接口功能:获取 HTTP 鉴权头部,如果未登录,则返回 null。
输入参数:无
返回结果:| 字段 | 类型 | 不为空 | 说明 |
| --- | --- | --- | --- |
| x-faas-context-authorization | string | 是 | 鉴权头部信息 |
示例代码:
`javascript
import { Auth } from "@alipay/faas-biz-web-sdk";const userPoolConfig = {
envId: 'your-env-id',
userPoolUid: 'your-userPool-uid',
};
const auth = new Auth(userPoolConfig);
auth.getAuthHeader().then((ah) => {
//获取鉴权头部成功
});
`
#### getCurrentUser()
接口功能:获取当前登录用户对象,如果未登录,则返回 null。
输入参数:无
返回结果:| 字段 | 类型 | 不为空 | 说明 |
| --- | --- | --- | --- |
| user | User | 是 | 用户对象 |
示例代码:
`javascript
import { Auth } from "@alipay/faas-biz-web-sdk";const userPoolConfig = {
envId: 'your-env-id',
userPoolUid: 'your-userPool-uid',
};
const auth = new Auth(userPoolConfig);
auth.getCurrentUser()
.then((res) => {
//获取当前登录用户对象成功
});
`
#### logout()
接口功能:退出登录
输入参数:无
返回结果:无
示例代码:
`javascript
import { Auth } from "@alipay/faas-biz-web-sdk";const userPoolConfig = {
envId: 'your-env-id',
userPoolUid: 'your-userPool-uid',
};
const auth = new Auth(userPoolConfig);
auth.logout();
`
#### 三方登录
##### 支付宝
###### getAlipayAuthProvider().loginWithRedirect()
接口功能:跳转到支付宝登录页面
输入参数:| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| appId | string | 是 | 商户的 appId |
返回结果:无
示例代码:
`javascript
import { Auth } from "@alipay/faas-biz-web-sdk";const userPoolConfig = {
envId: 'your-env-id',
userPoolUid: 'your-userPool-uid',
};
const auth = new Auth(userPoolConfig);
const authProvider = auth.getAlipayAuthProvider();
authProvider.loginWithRedirect({
appId: 'your-app-id'
});
`
###### getAlipayAuthProvider().getRedirectResult()
接口功能:支付宝登录页面重定向回来后,使用重定向的返回值登录,并获取登录态。
输入参数:| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| createUser | boolean | 否 | 当支付宝 openid 没有对应的云开发用户时,是否自动创建一个新的云开发用户,默认为 true |
返回结果:
| 字段 | 类型 | 不为空 | 说明 |
| --- | --- | --- | --- |
| user | User | 是 | 用户信息 |
| loginType | string | 是 | 登录方式 |
| isAlipayAuth | boolean | 是 | 支付宝三方登录 |
| isUsernameAuth | boolean | 是 | 账密登录 |
示例代码:
`javascript
import { Auth } from "@alipay/faas-biz-web-sdk";const userPoolConfig = {
envId: 'your-env-id',
userPoolUid: 'your-userPool-uid',
};
const auth = new Auth(userPoolConfig);
const authProvider = auth.getAlipayAuthProvider();
authProvider.getRedirectResult()
.then((res) => {
//登录成功
});
``