提交 89006629 编写于 作者: C chenruilong

docs: update uni-id-pages.md

上级 8e9b6449
......@@ -121,14 +121,14 @@
onLaunch: async function() {
console.log('App Launch')
await uniIdPageInit()
},
},
onShow: function() {
console.log('App Show')
},
},
onHide: function() {
console.log('App Hide')
}
}
}
}
</script>
```
......@@ -750,7 +750,7 @@ await uniIdCo.loginByWeixin({
- 如果有多个应用同时使用微信小程序登录,且希望用户身份不隔离请确保这些应用在微信小程序平台为同一主体所有,即保证不同应用可以获取同样的unionid
- `uni-id-pages 1.0.8`及以上版本会使用uni-open-bridge-common保存`session_key`(微信小程序登录)、`access_token`(微信公众号登录、微信App登录)这些信息,但是为了兼容旧版逻辑仍在用户表存储了一份副本。详细说明参考:[自动保存用户sessionKey、accessToken等信息](uni-id-summary.md#save-user-token)
- - 如果开发者在其他应用未使用 [uni-open-bridge-common](/uniCloud/uni-open-bridge.md) 管理 access_token 等信息,可能会造成 access_token 冲突。
**关于openid的说明**
**关于openid的说明**
`uni-id-pages 1.0.7`及之前的版本会将微信的openid存为如下格式
......@@ -1528,7 +1528,6 @@ await uniIdCo.getInvitedUser({
- 仅在用户token即将过期时返回新newToken
### 安全验证@verifier
#### 创建图形验证码@create-captcha
......@@ -1752,6 +1751,49 @@ await uniIdCo.addUser({
|errMsg |string |错误信息 |
#### 管理员修改用户@update-user
接口名:updateUser
**接口形式**
```js
await uniIdCo.updateUser({
uid,
username,
password,
nickname,
authorizedApp,
role,
mobile,
email,
tags,
status
})
```
**参数说明**
| 参数名 | 类型 | 必填 | 说明 |
|---------------|---------------------|-----|-----------------------------------------------|
| uid | string | 是 | 要更新的用户id |
| username | string | 是 | 用户名 |
| password | string | 否 | 密码 |
| nickname | string | 否 | 昵称 |
| authorizedApp | Array&lt;string&gt; | 否 | 允许登录的app列表 |
| role | Array&lt;string&gt; | 否 | 用户角色 |
| mobile | string | 否 | 手机号 |
| email | string | 否 | 邮箱 |
| tags | array | 否 | 用户标签 |
| status | number | 否 | 用户状态,参考:[用户状态](uni-id-summary.md#user-status) |
**返回值**
|参数名 |类型 |说明 |
|-- |-- |-- |
|errCode |string&#124;number |错误码 |
|errMsg |string |错误信息 |
#### 授权用户登录指定客户端@authorize-app-login
接口名:authorizeAppLogin
......@@ -1858,19 +1900,21 @@ await uniIdCo.setAuthorizedApp({
- 仅在用户token即将过期时返回新newToken
### 外部系统联登@external
#### 注册用户@external-register
外部用户注册,将自身系统的用户账号导入uniId,为其创建一个对应uniId的账号(unieid),使得该账号可以使用依赖uniId的系统及功能。
适合自己有用户系统,同时需要使用依赖UniId的业务,将自身系统的用户账号导入uniId,为其创建一个对应uniId的账号,使得该账号可以使用依赖uniId的系统及功能。
由于此方案的接口不需要密码验证,开发者务必要保证接口只能在服务端调用,同时要求在请求时计算签名来保证安全。
注册成功后,uni-id 返回 unieid 与 用户 token ,请务必在自身系统中维护好 unieid 与 token。
联登相关接口只支持HTTP方式调用,调用时需要携带鉴权签名值,查看[URL化请求鉴权签名计算](uni-id-pages.md#http-reqeust-auth)
该接口使用URL方式调用时,需要携带鉴权签名值,查看[URL化请求鉴权签名计算](uni-id-pages.md#http-reqeust-auth)
#### 注册用户@external-register
外部用户注册,注册成功后,uni-id 返回 uid 与 用户 token ,请务必在自身系统中维护好 uid 与 token。
**接口形式**
```js
await uniIdCo.externalRegister({
unieid,
externalUid,
nickname,
avatar,
gender
......@@ -1879,12 +1923,12 @@ await uniIdCo.externalRegister({
**参数说明**
|参数名 |类型 |必填 |说明 |
|-- |-- |-- |-- |
|unieid |string |是 |uni-id账号,必须保证唯一性。只允许使用数字、字母、“_”及“-”,但不能为纯数字。 |
|nickname |string|否 |用户昵称 |
|avatar |string|否 |用户头像 |
|gender |string|否 |用户性别;0 未知 1 男性 2 女性 |
| 参数名 | 类型 | 必填 | 说明 |
|---------------|------------|-----|----------------------------|
| externalUid | string | 是 | 自身系统的用户id,必须保证唯一性。 |
| nickname | string | 否 | 用户昵称 |
| avatar | string | 否 | 用户头像 |
| gender | string | 否 | 用户性别;0 未知 1 男性 2 女性 |
**返回值**
......@@ -1895,7 +1939,11 @@ await uniIdCo.externalRegister({
|newToken |object |token信息 |
|&nbsp;&#124;-&nbsp;token |string |token |
|&nbsp;&#124;-&nbsp;tokenExpired|string |token过期时间 |
|unieid |string |用户id |
|externalUid |string |自身系统的用户id |
|uid |string |uni-id体系的用户Id |
| nickname | string | 用户昵称 |
| avatar | string | 用户头像 |
| gender | string | 用户性别;0 未知 1 男性 2 女性 |
#### 用户登录@external-login
......@@ -1907,7 +1955,8 @@ await uniIdCo.externalRegister({
```js
await uniIdCo.externalLogin({
unieid
uid,
externalUid
})
```
......@@ -1915,7 +1964,8 @@ await uniIdCo.externalLogin({
|参数名 |类型 |必填 |说明 |
|-- |-- |-- |-- |
|unieid |string |是 |uni-id账号,必须保证唯一性。只允许使用数字、字母、“_”及“-”,但不能为纯数字。 |
|uid |string |否 |uni-id体系的用户Id;与externalUid 二选一 |
|externalUid |string |否 |自身系统的用户id;与 uid 二选一 |
**返回值**
......@@ -1926,7 +1976,54 @@ await uniIdCo.externalLogin({
|newToken |object |token信息 |
|&nbsp;&#124;-&nbsp;token |string |token |
|&nbsp;&#124;-&nbsp;tokenExpired|string |token过期时间 |
|unieid |string |用户id |
|uid |string |uni-id体系的用户Id |
#### 修改用户信息@external-update-userinfo
外部用户修改账号信息,如用户在自身系统内修改了用户信息后,通过此接口同步修改uni-id中用户信息。
该接口使用URL方式调用时,需要携带鉴权签名值,查看[URL化请求鉴权签名计算](uni-id-pages.md#http-reqeust-auth)
**接口形式**
```js
await uniIdCo.updateUserInfoByExternal({
uid,
externalUid,
username,
password,
nickname,
authorizedApp,
role,
mobile,
email,
tags,
status
})
```
**参数说明**
|参数名 |类型 |必填 |说明 |
|-- |-- |-- |-- |
|uid |string |否 |uni-id体系的用户Id;与externalUid 二选一 |
|externalUid |string |否 |自身系统的用户id;与 uid 二选一 |
| username | string | 是 | 用户名 |
| password | string | 否 | 密码 |
| nickname | string | 否 | 昵称 |
| authorizedApp | Array&lt;string&gt; | 否 | 允许登录的app列表 |
| role | Array&lt;string&gt; | 否 | 用户角色 |
| mobile | string | 否 | 手机号 |
| email | string | 否 | 邮箱 |
| tags | array | 否 | 用户标签 |
| status | number | 否 | 用户状态,参考:[用户状态](uni-id-summary.md#user-status) |
**返回值**
| 参数名 | 类型 | 说明 |
|---------------------------------|---------------------|----------------------|
| errCode | string&#124;number | 错误码 |
| errMsg | string | 错误信息 |
### 其他功能@extra-function
......@@ -2053,10 +2150,10 @@ uni-id-pages已全面支持:app、小程序、web(uni-id-pages 版本号1.0.
#### 回调域名的配置@redirect_uri
- 手机微信扫码登录
微信开放平台 -> 管理中心 -> 网站应用 -> 选择对应的应用名称,点击查看 -> 开发信息,点击修改 -> 填写授权回调域
微信开放平台 -> 管理中心 -> 网站应用 -> 选择对应的应用名称,点击查看 -> 开发信息,点击修改 -> 填写授权回调域
- 基于微信公众号auth登录
登录微信公众号 -> 设置与开发 -> 公众号设置 -> 设置网页授权域名
登录微信公众号 -> 设置与开发 -> 公众号设置 -> 设置网页授权域名
#### 本地调试
回调域名,必须接入外网已经备案的URL地址,不然本地没法进行调试,你可以做内网穿透,映射生成一个外网URL地址来进行回调测试。但是那样比较麻烦,这里我们介绍一种基于HBuilderX本地启动一个Web Server进行调试的方法。
......@@ -2069,9 +2166,9 @@ uni-id-pages已全面支持:app、小程序、web(uni-id-pages 版本号1.0.
2. 实现访问域名直接指向你的本地web Server
可以通过内网穿透实现,但比较麻烦且可能会影响线上用户。这里推荐直接修改hosts,hosts是一个没有扩展名的系统文件,其基本作用就是将一些常用的网址域名与其对应的 IP 地址建立一个关联“ 数据库 ”。当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从hosts文件中寻找对应的 IP 地址,一旦找到,系统就会立即打开对应网页,如果没有找到,系统才会将网址提交 DNS 域名解析服务器进行 IP 地址的解析。
host文件路径: Windows系统一般为:`C:\Windows\System32\drivers\etc`。mac系统:`/etc/`
用HBuilderX打开hosts文件,在末尾添加一行 `127.0.0.1 你的域名`保存即可。
此时访问域名,如果就能看到和你的项目运行到浏览器一样的效果,说明已经成功了。
host文件路径: Windows系统一般为:`C:\Windows\System32\drivers\etc`。mac系统:`/etc/`
用HBuilderX打开hosts文件,在末尾添加一行 `127.0.0.1 你的域名`保存即可。
此时访问域名,如果就能看到和你的项目运行到浏览器一样的效果,说明已经成功了。
### 苹果登录集成指南
- 模块配置:`manifest.json` --> `App模块配置` --> OAuth(登录鉴权)勾选`苹果登录`[IOS苹果授权登录参考文档](https://ask.dcloud.net.cn/article/36651)。如不发布到Appstore,不需要配置此项
......@@ -2153,6 +2250,7 @@ uni-id 在URL化请求时,会对以下 API 进行调用鉴权验证,
|---|
|externalRegister|
|externalLogin|
|updateUserInfoByExternal|
### 请求头公共参数
......@@ -2181,7 +2279,7 @@ class Sign {
getSignature (params, nonce, timestamp) {
const paramsStr = this.getParamsString(params)
const signature = crypto.createHmac('sha256', `${requestAuthSecret}${nonce}`).update(`${timestamp}${paramsStr}`).digest('hex')
const signature = crypto.createHmac('sha256', `${this.requestAuthSecret}${nonce}`).update(`${timestamp}${paramsStr}`).digest('hex')
return signature.toUpperCase()
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册