日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

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

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

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

在網上找了很久也沒有發現比較好的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方式授權.

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 日韩三级网址 | 美女福利在线观看 | 欧美性猛交xxxx乱大交退制版 | 一级毛片在线视频 | 日韩精品久久久久 | 欧美日韩国产高清视频 | 美女视频黄的免费 | 国产一区二区免费在线 | 久久av综合 | 希岛あいり中文字幕在线 | 欧美日韩国产三区 | 亚洲综合99 | 国产精品久久久久婷婷二区次 | 美女黄色在线观看 | 亚洲另类欧美日韩 | 久久成人一区二区 | 成人高清 | 日韩欧美国产高清 | 波多野av在线 | 美女激情av| 欧美一区二区在线观看视频 | 亚洲欧美bt| 欧美一级在线观看 | 婷婷毛片| 亚洲a人 | 日韩影片在线观看 | 亚洲第一页中文字幕 | 91九色网| 在线看的av网站 | 91精品国产综合久久小美女 | 亚洲高清在线视频 | 国产在线视频一区二区三区 | av第下页| 亚洲麻豆| 国产成人精品午夜 | 精品一区二区三区在线视频 | 韩国色综合 | 亚洲经典一区 | 福利视频一二三在线视频免费观看 | 亚洲福利电影网 | 97视频在线播放 |