一、JSON
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,属于JavaScript语法的一个子集,但是它是完全独立于语言的文本格式。
1、JSON 的值
JSON 值可以是:
(1)数字(整数或浮点数)
(2)字符串(在双引号中)
(3)逻辑值(true 或 false)
(4)数组(在方括号中)
(5)对象(在花括号中)
(6)null
2、语法:
(1)数据在名称/值对中
按照最简单的形式,可以用下面这样的 JSON 表示"名称 / 值对":
{"firstName":"Brett"}
这个JSON数据等价于其他语言中的:
firstName=Brett
(2)数据由逗号分隔
当将多个"名称 / 值对"串在一起时,使用逗号将数据分开。
{"firstName":"Brett","lastName":"McLaughlin","email":"aaaa"}
(3)花括号保存对象
对象在js中表示为“{}”括起来的内容。
数据结构为 {key:value,key:value,...}的键值对的结构。
在面向对象的语言中,key为对象的属性,value为对应的属性值。
取值方法为: 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。
(4)方括号保存数组
数组在js中是中括号“[]”括起来的内容。
数据结构为 ["java","javascript","vb",...]。
取值方式和所有语言中一样,使用索引获取。
字段值的类型可以是 数字、字符串、数组、对象几种。
3、例子
{
"name":"中国",
"province":[
{
"name":"黑龙江",
"cities":{
"city":["哈尔滨","大庆"]
}
},
{
"name":"广东",
"cities":{
"city":["广州","深圳","珠海"]
}
},
{
"name":"台湾",
"cities":{
"city":["台北","高雄"]
}
},
{
"name":"新疆",
"cities":{
"city":["乌鲁木齐"]
}
}
]
}
使用.province[0].name即可获取“黑龙江”这个值。
二、OAuth2.0
1、简介
OAuth允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。
每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。这样,OAuth允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要分享他们的访问许可或他们数据的所有内容。
2、参与方
(1)服务提供方:用户使用服务提供方来存储受保护的资源,如照片,视频,联系人列表。
(2)用户:存放在服务提供方的受保护的资源的拥有者。
(3)客户端:要访问服务提供方资源的第三方应用,通常是网站,如提供照片打印服务的网站。在认证过程之前,客户端要向服务提供者申请客户端标识。
3、流程
(1)用户访问客户端的网站,想操作用户存放在服务提供方的资源。
(2)客户端向服务提供方请求一个临时令牌。
(3)服务提供方验证客户端的身份后,授予一个临时令牌。
(4)客户端获得临时令牌后,将用户引导至服务提供方的授权页面请求用户授权。在这个过程中将临时令牌和客户端的回调连接发送给服务提供方。
(5)用户在服务提供方的网页上输入用户名和密码,然后授权该客户端访问所请求的资源。
(6)授权成功后,服务提供方引导用户返回客户端的网页。
(7)客户端根据临时令牌从服务提供方那里获取访问令牌。
(8)服务提供方根据临时令牌和用户的授权情况授予客户端访问令牌。
(9)客户端使用获取的访问令牌访问存放在服务提供方上的受保护的资源。