首页 >> 牛刀云小程序开发教程 >> 第2篇 开发模式 >> 服务开发 >> 公共服务介绍

15.4.1 UAA用户账户和身份验证服务

UAA用于管理用户,用作OAuth2提供者,当客户端用户使用时为其发布令牌。通过与登录服务器协作,它可以通过用户的凭据对其进行认证,也可以使用这些凭据用作SSO服务。该服务为管理用户账号和注册OAuth2客户端提供端点。

UAA包括以下功能:用户和群组管理,以及用于UAA认证的登录和注销服务。

 

1、用户和群组的数据集结构

    用户数据集结构如图15-22所示。

15-22  用户数据集结构

    群组数据集结构如图15-23所示。

15-23  群组数据集结构

2、用户API

1)创建用户

URL/uaa/Users

请求方式:POST

参数:

名称

说明

userName

登录名(必填),必须唯一

password

密码(必填)

name中的givenName

姓名(必填)

emails

邮箱(必填),只能填一个

phoneNumbers

电话号码,只能填一个

其它列标识

对应输入值

返回:状态码,200—请求成功,400无效的JSON格式或不存在的数据列,401—无效的令牌,409登录名已经存在,请求成功返回用户JSON对象

示例:

        $.ajax({

            url:"/uaa/Users",

            type:"POST",

            contentType:"application/json",

            data:JSON.stringify({

                "userName":"zhangsan",

                "name": {"givenName":"张三"},

                "password":"secret",

                "phoneNumbers":[ {"value":"123456789"}],

                "emails":[{"value":"zhangsan@newdao.com"}]

            })

        });

 

2)修改用户

URL/uaa/Users/用户ID

请求方式:PATCH

参数:

名称

说明

列标识

输入新值

emails

不能修改

返回:状态码,200—请求成功,400无效的JSON格式或不存在的数据列,401—无效的令牌,404用户不存在,请求成功返回用户JSON对象

示例:

        $.ajax({

            url:"/uaa/Users/8fa39e09-4c43-481c-9017-2abf9738eabf",

            type:"PATCH",

            contentType:"application/json",

            headers: {

                "Accept" : "application/json",

                "If-Match" : "*"

            },

            data:JSON.stringify({

                "userName":"lisi3",

                "name": {"givenName":"李四3"},

                "password":"secret3"

            })

        });

 

3)删除用户

URL/uaa/Users/用户ID

请求方式:DELETE

参数:

返回:状态码,200—请求成功,400无效的JSON格式或不存在的数据列,401—无效的令牌,404用户不存在,请求成功返回用户JSON对象

示例:

        $.ajax({

            url:"/uaa/Users/8fa39e09-4c43-481c-9017-2abf9738eabf",

            type:"DELETE",

            contentType:"application/json"

        });

 

3、群组API

1)创建群组

URL/uaa/Groups

请求方式:POST

参数:

名称

说明

displayName

群组名(必填),必须唯一

description

群组描述

type

必须是default(必填),否则管理后台组织管理功能中不显示

返回:状态码,200—请求成功,409—群组名已经存在,请求成功返回群组JSON对象

示例:

        $.ajax({

            url:"/uaa/Groups",

            type:"POST",

            contentType:"application/json",

            data:JSON.stringify({

                "displayName":"产品部",

                "description":"开发牛刀云",

                "type":"default"

            })

        });

 

2)群组中加入用户

URL/uaa/Groups/群组ID/members

请求方式:PATCH

参数:

名称

说明

value

用户ID

返回:状态码,200—请求成功,400无效的用户ID404—群组不存在,请求成功返回群组成员JSON对象

示例:

        $.ajax({

            url:"/uaa/Groups/5f914487-187e-42c0-8bf9-7e74e5391022/members",

            type:"POST",

            contentType:"application/json",

            data:JSON.stringify({

                "value":"8fa39e09-4c43-481c-9017-2abf9738eabf"

            })

        });

 

3)群组中删除用户

URL/uaa/Groups/群组ID/members/用户ID

请求方式:DELETE

参数:

返回:状态码,200—请求成功,404—群组或成员不存在,请求成功返回群组成员JSON对象

示例:

        $.ajax({

            url:"/uaa/Groups/5f914487-187e-42c0-8bf9-7e74e5391022

/members/8fa39e09-4c43-481c-9017-2abf9738eabf",

            type:"DELETE",

            contentType:"application/json"

        });

 

4)删除群组

URL/uaa/Groups/群组ID

请求方式:DELETE

参数:

返回:状态码,200—请求成功,请求成功返回群组JSON对象

示例:

        $.ajax({

            url:"/uaa/Groups/5f914487-187e-42c0-8bf9-7e74e5391022",

            type:"DELETE",

            contentType:"application/json"

        });

 

4、登录注销API

1)登录 login

URL/login

请求方式:POST

参数:

名称

说明

username

登录名或手机号,都可用于登录

password

密码

返回:状态码,200—请求成功,请求成功返回用户JSON对象

示例:

        $.ajax({

            type : "POST",

            url :  "/login",

            dataType:"json",

             contentType:"application/json",

            data : {

                username : "zhangsan",

                password : "secret"

            }

        });

 

2)注销 logout

URL/logout

请求方式:GET

参数:

返回:状态码,200—请求成功

示例:

        $.ajax({

            type : "GET",

            url :  "/logout",

            contentType:"application/json",

        });

 

3)注册 register

URL/uaa/Users/register

请求方式:POST

参数:同创建用户。请求头中传用户输入的验证码

返回:状态码,200—请求成功,500——发送失败

示例:

        $.ajax({

            url:"/uaa/Users/register",

            type:"POST",

            contentType:"application/json",

            headers: {"code":"515742"},

            data:JSON.stringify({

                "active":true,

                "userName":"159123456",

                "name": {"formatted":"王五","givenName":"王五"},

                "password":"secret",

                "emails":[{"value":"wangwu@newdao.com","primary":true}],

                "phoneNumbers":["159123456"]

            })

        });

 

4)获取当前用户信息

URL/uaa/userinfo

请求方式:GET

参数:

返回:状态码,200—请求成功,400无效的JSON格式或不存在的数据列,401—无效的令牌,403需要openid请求成功返回用户JSON对象

示例:

        $.ajax({

            url:"/uaa/userinfo",

            type:"GET",

            contentType:"application/json"

        });