您的位置:首页 > 运维架构 > Linux

CentOS 7 之 hostapd 路由模式配置

2015-09-24 12:35 302 查看
一.创建应用:
1.进入新浪微博开放平台首页(http://open.t.sina.com.cn/)
2.进入我的应用
3.创建应用
4.在完成第三步的时候会得到服务商提供的 App Key(oauth_consumer_key) 以及
  App Secret(oauth_secret):

二.OAuth的授权流程:
你所开发的应用需要的流程如下:
1.向应用服务商(新浪,腾讯,搜狐等微博)请求request_token
2.得到request_token后重定向用户到服务商的授权页面
3.如果用户选择授权你的应用,用request_token向服务商请求换取access_token
4.得到access_token等信息访问受限资源
而服务商相应的相应如下:
1.创建request_token返回给应用
2.询问用户是否授权此应用。如果用户授权重定向至应用页面。
3.创建access_token并返回给应用
4.相应受限资源请求并返回相关信息。
通俗的说:就是你那着得到的身份证明(request_token)向服务商申请进入用户的钥匙(access_token),服务商询问用户同不同意, 如果用户同意服务商就给你进入用户的钥匙(access_token),拿到钥匙你就可以进入用户信息中心。
三.Oauth提供两种认证方式:query-string和httpheaders .推荐使用http header进行认证
1.请求签名
所有的OAuth请求使用同样的算法来生成(signature base string) 签名字符基串和签名
base string 是把http方法名,请求url 以及请求参数用&字符连接起来后做URL Encode编码。具体来讲,base string由http方法名,之后是&,接着是经过url编码之后的url和访问路径以及&.接下来,把所有的请求参数包括POST方法中的参数,经过排序(按参数名进行文本排序,如果参数名有重复则按照数值进行重复项目排序),使用%3D代替=号,并且使用%23作为每个参数之间的分隔符,拼接成一个字符串。
这个算法【1】可以简单表示为:
httpMethod + "&"
url_encode(base_uri)+"&"+
sort_query_params.each{|k,v|
    url_encode(k)+"%3D"+url_encode(v)}.join(%26)
新浪微博要求所有的OAuth请求都使用HMAC-SHA1算法生成签名。
2.获取request token
新浪开放平台的request_token获取接口地址为:http://api.t.sina.com.cn/oauth/request_token
以下是请求用的参数:
【2.1】 oauth_request_methos-POST
【2.2】 consumer_secret - "App Secret"
【2.3】oauth_callback - "用户授权后的返回地址"
【2.4】oauth_consumer_key - "App Key"
【2.5】 oauth_nonce - "随机字符串,须保证每次都不同(10位)"
【2.6】 oauth_signature_method - "HMAC-SHA1" /*签名base string的方法-*/
【2.7】 oauth_timestamp - "时间戳"
【2.8】 oauth_version -"1.0" /*OAuth协议版本*/
【2.9】 request_token_url -http://api.t.sina.com.cn/oauth/request_token
       /*新浪微博获取request_token的URL*/
【2.10】 authorize_url -http://api.t.sina.com.con/oauth/authorize
/*---新浪微博开放平台的验证URL---*/
【2.11】 access_token_url - http://api.t.sina.con.cn/oauth/access_token         /*---新浪微博开放平台获取access_token的URL---*/

2.1 将上文提到了【2.2】-【2.8】用算法【1】形成base string。需要注意的是callback
在URL中包含请求参数, 由于参数只是callback url的一部分,所以并不需要
      将其提出成为独特的参数。URL必须按照单个字符串来考虑。
2.2 接下来,使用signing key(App Secret 后加一个&符号)从base string 生成
    oauth_signature
2.3 接下来就可以想http://api.t.sina.com.cn/oauth/request_token发送请求,
生成http hearder
2.4 当服务器端接到请求之后,会返回包含oauth_token,oauth_token_secret等内
     容, 另外,oauth_callback_confirmed字段如果为true,就表示callback生效。
这时需要记下 oauth_token和oauth_token_secret.
四。用户认证:
这一步主要是发送你获取的oauth_token,并且获得用户的授权。一般来说,WEB
应用会简单的重定向到相应的页面,桌面应用程序会给出URL并要求用户自行验证.
新浪微博开放平台的验证URL是http://api.t.sina.com.cn/oauth/authorize 。要
求必须以oauth作为参数,一般来说请求格式如下: http://api.t.sina.com.cn/oauth/authorize?oauth_token=8ldIZyxQeVrFZXFOZH5tAwj6vzJYuLQpl0WUEYtWc 如果用户没有登录新浪微博,则会要求用户登录。否则将会出现一个页面,用户可以在此页面上一键同意或者拒绝对此应用授权。
用户授权后,web应用页面将会重定向至你指定的oauth_callback,如果是桌面应用,将会显示PIN码,用户需要将PIN码输入你的应用中来完成授权过程。
1. 获取access token
新浪微博开放平台access token请求地址为:http://api.t.sina.com.cn/oauth/access_token
以下是请求参数:
oauth_comsumer_key - App key
oauth_nonce -随机生成字符串
oauth_signature_method -HMAC-SHA1
oauth_token-
oauth_timestamp -时间戳
oauth-verifier-
oauth_version - 1.0
oauth-token-secret-
1.1 准备base string (使用算法【1】)
1.2 接着将consumer_secret 和 oauth_token_secret连接起来,中间用&分割
1.3 生成 oauth签名
1.4 向给定的url发送请求,请求头一定要包含request_token(就是 access_token)
五. 获取用户信息
进行用户验证(如果验证成功,将会返回用户的详细信息)
以下是进行用户验证的相关参数:
oauth_consumer_key - App key
oauth_nonce - 随机的字符串
oauth_signature_method - HMAC-SHA1
oauth_token - oauth_token
oauth_timestamp - 时间戳
oauth_version - 1.0
1.1 通过算法【1】生成 base string
1.2 将oauth_comsumer_secret和oauth_token_secret以& 作为分隔符拼起来。将拼
接后的字符串作为签名的key 进行加密,生成签名。
1.3 接下来就可以通过http发送请求,生成http header
1.4 返回的即使用户的详细信息。
六. 使用OAuth发表微博
  可以使用获取的oauth_token和oauth_token_secret来发送微博。发送微博可以通过
  Statuses/update接口。
以下是相关参数:
POST body-status= 通过OAuth发送微博信息
oauth_consumer_key - App key
oauth_nonce - 随机字符串
oauth_signature_method - HMAC-SHA1
oauth_token -
oauth_timestamp - 时间戳
oauth_version - 1.0
1.1 通过算法【1】形成base string
1.2 将oauth_consumer_secret 和oauth_token_secret以&作为分割符拼起来。将拼
接后的字符串作为签名的key进行加密,生成签名。
1.3 通过http发送请求生成http header
1.4 得到服务器段的响应
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: