多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > vio微博(Android)開發日記之SSO授權篇

vio微博(Android)開發日記之SSO授權篇

來源:程序員人生   發布時間:2015-06-19 08:55:11 閱讀次數:2585次

在網上找了很久也沒有發現比較好的android微博客戶端可以提供學習…有的也是非常老舊了…磨擦磨擦…完全跟不上時期的步伐.1怒之下,vio微博應運而生.
duang…
言歸正傳…新浪微博目前所采取的授權機制,已完全拋棄了OAuth1.0 ,轉向OAuth2.0.那末怎樣進行OAuth2.0的認證呢?
首先,我們了解1下OAuth2.0: OAuth2.0是1個全新的協議,對之前的版本不進行向后兼容,但OAuth2.0的整體架構與之前的OAuth架構卻是相同的.
OAuth2.0的認證流程:
(1)用戶打開客戶端以后,客戶端要求用戶給予授權
(2)用戶同意給予客戶端授權
(3)客戶端使用上1步取得的授權,向認證服務器申請令牌
(4)認證服務器對客戶端進行認證以后,確認無誤,同意發放令牌
(5)客戶端使用令牌,向資源服務器申請獲得資源
(6)資源服務器確認令牌無誤,同意向客戶端開放資源
OAuth2.0客戶端授權模式包括:
①授權碼模式(authorization code)
②簡化模式(implicit)
③密碼模式(resource owner password credentials
④客戶端模式(client credentials)

授權碼模式:
―> 用戶訪問客戶端,客戶端指向服務器(
參數:response_type:表示授權類型,必選項,此處的值固定為”code”
client_id:表示客戶真個ID,必選項(新浪微博app_key)
redirect_uri:表示重定向URI,可選項(新浪微博提供默許url)
scope:表示申請的權限范圍,可選項(可參照sdkdemo)
state:表示客戶真個當前狀態,可以指定任意值,認證服務器會原封不動地返回這個值。)
―> 用戶選擇是不是授權
―> 獲得用戶后,將用戶導向到redirect_uri,返回授權碼code
―> (此步驟用戶不可見) 利用服務器授權碼,向服務器申請1個access_token
―> 認證服務器核對了授權碼和重定向URI,無誤以后,返回參數(
參數:access_token:表示訪問令牌,必選項。
token_type:表示令牌類型,該值大小寫不敏感,必選項,可以是bearer類型或mac類型。
expires_in:表示過期時間,單位為秒。如果省略該參數,必須其他方式設置過期時間。
refresh_token:表示更新令牌,用來獲得下1次的訪問令牌,可選項。
scope:表示權限范圍,如果與客戶端申請的范圍1致,此項可省略)
我們使用的便是這類方式:其他3種此處不做介紹:(有興趣參考:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html)

下面我們看1下我的vio微博的認證:
首先: 打開新浪微博開放平臺(http://open.weibo.com/) 完善個人信息 創建利用…
(如果是創建第2個利用,點擊微連接,移動利用就OK)
這里的Android簽名請注意:
android簽名需要在現在sdk_demo中獲得app_signatures.apk輸入包名獲得.下載地址:https://github.com/sinaweibosdk/weibo_android_sdk
值得注意的是之高級設置中需要按以下設置(固然若是大神自動可躲避):回調地址

申請流程就到這里,以上是注意點.建議大家揣摩1下demo,好處多多.
新建vio微博工程,在微博sdk中導入以下.so文件及weibosdkcore.jar文件

本人不喜歡項目依賴,所以之間拷了過來.大家如果能接受,直接將weibosdk設為依賴.

authInfo = new AuthInfo(this, WeiBoConfig.APP_KEY, WeiBoConfig.REDIRECT_URL, WeiBoConfig.SCOPE); ssoHandler = new SsoHandler(this, authInfo); Button btnLogin = (Button) findViewById(R.id.btn_login); btnLogin.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { ssoHandler.authorize(new AuthListener()); } });
class AuthListener implements WeiboAuthListener{ private Oauth2AccessToken accessToken; @Override public void onCancel() { Log.d(TAG, "授權取消"); } @Override public void onComplete(Bundle arg0) { accessToken = Oauth2AccessToken.parseAccessToken(arg0); if (accessToken.isSessionValid()) {// 判斷accessToken是不是有效 Log.d(TAG, "uid = " + accessToken.getUid()); Log.d(TAG, "token = " + accessToken.getToken()); Log.d(TAG, "refreshtoken = " + accessToken.getRefreshToken()); Log.d(TAG, "expirestime = " + accessToken.getExpiresTime()); }else { Log.d(TAG, "accessToken無效"); // 以下幾種情況,您會收到 Code: // 1. 當您未在平臺上注冊的利用程序的包名與簽名時; // 2. 當您注冊的利用程序包名與簽名不正確時; // 3. 當您在平臺上注冊的包名和簽名與您當前測試的利用的包名和簽名不匹配時。 String code = arg0.getString("code"); code = TextUtils.isEmpty(code) ? "未知code" : code; Log.d(TAG, "未獲得到有效的accessToken, 毛病碼code = " + code); } } @Override public void onWeiboException(WeiboException arg0) { Log.d(TAG, "產生異常 : " + arg0.getMessage()); } }
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // SSO 授權回調 // 重要:發起 SSO 登陸的 Activity 必須重寫 onActivityResult if (ssoHandler != null) { ssoHandler.authorizeCallBack(requestCode, resultCode, data); } }

這是獲得授權最簡單的方式…… 本人比較懶,就直接調用了sdk.勿噴.
ssoHandler.authorize(new AuthListener()); 這類方式默許調用微博客戶端授權,若用戶手機上沒有微博客戶端,則實用web方式授權.

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 久久受www免费人成_看片中文 | 亚洲欧美另类日本久久影院 | 亚洲高清免费 | 欧美国产日韩一区 | 精品国产日韩亚洲一区在线 | 成人自拍视频网站 | 国产成人精品视频一区二区不卡 | free中国性xxxxhd| 亚洲免费观看在线视频 | 亚洲国产精品欧美综合 | 一区二区三区四区在线免费观看 | 免费国产高清精品一区在线 | 能免费看的黄色网址 | 日本aa大片在线播放免费看 | 国产a在亚洲线播放 | 国产一区二区在线观看免费 | 亚洲日本在线免费观看 | 亚洲一区二区免费看 | 欧美性bbbbxxxxx | 毛片在线不卡 | 羞羞影院免费观看网址在线 | 在线观看视频一区二区 | 欧美性久久 | xxxx欧美视频 | 欧美一区二区三区影院 | 能免费看的黄色网址 | 欧美性猛交xxxx免费 | 伊人久久大香线蕉久久婷婷 | 91se在线看片国产免费观看 | 久久国产视频一区 | 国产一区二区精品久久 | 久久久xxx| 日本精品免费 | 日韩在线高清 | www.欧美色| 久久国内免费视频 | 国产成人精选视频69堂 | 成人免费一区二区三区 | 午夜视频免费看 | 国产女人精品性视频 | 性久久久久 |