C#-MVC開發微信應用(2)--OAuth2.0網頁受權

微信公衆平臺最近新推出微信認證,認證後能夠得到高級接口權限,其中一個是OAuth2.0網頁受權,不少朋友在使用這個的時候失敗了或者沒法理解其內容,但願我出個教程詳細講解一下,因而便有了這篇文章。html

 

1、什麼是OAuth2.0

官方網站:http://oauth.net/   http://oauth.net/2/web

權威定義:OAuth is An open protocol to allow secure authorization in a simple and standard method from web, mobile and desktop applications. api

OAuth是一個開放協議,容許用戶讓第三方應用以安全且標準的方式獲取該用戶在某一網站、移動或桌面應用上存儲的私密的資源(如用戶我的信息、照片、視頻、聯繫人列表),而無需將用戶名和密碼提供給第三方應用。安全

OAuth 2.0是OAuth協議的下一版本,但不向後兼容OAuth 1.0。 OAuth 2.0關注客戶端開發者的簡易性,同時爲Web應用,桌面應用和手機,和起居室設備提供專門的認證流程。服務器

OAuth容許用戶提供一個令牌,而不是用戶名和密碼來訪問他們存放在特定服務提供者的數據。每個令牌受權一個特定的網站(例如,視頻編輯網站)在特定的時段(例如,接下來的2小時內)內訪問特定的資源(例如僅僅是某一相冊中的視頻)。這樣,OAuth容許用戶受權第三方網站訪問他們存儲在另外的服務提供者上的信息,而不須要分享他們的訪問許可或他們數據的全部內容。微信

新浪微博API目前也使用OAuth 2.0。app

原文:http://www.cnblogs.com/txw1958/p/weixin71-oauth20.html微信公衆平臺

2、微信公衆平臺OAuth2.0受權網站

微信公衆平臺OAuth2.0受權詳細步驟以下:spa

1. 用戶關注微信公衆帳號。
2. 微信公衆帳號提供用戶請求受權頁面URL。
3. 用戶點擊受權頁面URL,將向服務器發起請求
4. 服務器詢問用戶是否贊成受權給微信公衆帳號(scope爲snsapi_base時無此步驟)
5. 用戶贊成(scope爲snsapi_base時無此步驟)
6. 服務器將CODE經過回調傳給微信公衆帳號
7. 微信公衆帳號得到CODE
8. 微信公衆帳號經過CODE向服務器請求Access Token
9. 服務器返回Access Token和OpenID給微信公衆帳號
10. 微信公衆帳號經過Access Token向服務器請求用戶信息(scope爲snsapi_base時無此步驟)
11. 服務器將用戶信息回送給微信公衆帳號(scope爲snsapi_base時無此步驟)

 

 

使用的AppId和AppSecret在開發者中心-開發者ID中,能夠找到。

 

1. 配置受權回調頁面域名

進入微信公衆平臺後臺後,依次進入開發者中心-權限表,找到網頁受權獲取用戶基本信息,點擊右側的修改。

受權回調域名配置規範爲全域名而且不帶http,好比須要網頁受權的域名爲:www.qq.com,配置之後此域名下面的頁面http://www.qq.com/music.html 、 http://www.qq.com/login.html 均可以進行OAuth2.0鑑權。但http://pay.qq.com 、 http://music.qq.com 、 http://qq.com沒法進行OAuth2.0鑑權。

這裏咱們填寫方倍工做室的一個百度應用二級域名爲 mascot.duapp.com

原文:http://www.cnblogs.com/txw1958/p/weixin71-oauth20.html

若是你的網址沒有被列入過黑名單,就會在頂部出現

而後,域名配置就成功了。

 

2. 用戶受權並獲取code

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

參數說明

參數 必須 說明
appid 公衆號的惟一標識
redirect_uri 受權後重定向的回調連接地址
response_type 返回類型,請填寫code
scope 應用受權做用域,snsapi_base (不彈出受權頁面,直接跳轉,只能獲取用戶openid),snsapi_userinfo (彈出受權頁面,可經過openid拿到暱稱、性別、所在地。而且,即便在未關注的狀況下,只要用戶受權,也能獲取其信息
state 重定向後會帶上state參數,開發者能夠填寫任意參數值
#wechat_redirect 直接在微信打開連接,能夠不填此參數。作頁面302重定向時候,必須帶此參數

應用受權做用域:因爲snsapi_base只能獲取到openid,意義不大,因此咱們使用snsapi_userinfo。
回調地址:回調地址兩個參數,即:設置權限的頁面。state參數:隨便一個數字,這裏填1。

相關文章
相關標籤/搜索