1、以snsapi_base為scope發起的網頁授權,是用來獲取進入頁面的使用者的openid的,並且是靜默授權並自動跳轉到**頁的。使用者感知的就是直接進入了**頁。
2、以snsapi_userinfo為scope發起的網頁授權,是用來獲取使用者的基本資訊的。但這種授權需要使用者手動同意,並且由於使用者同意過,所以無須關注,就可在授權後獲取該使用者的基本資訊。
以scope=snsapi_userinfo為例,頁面載入的時候進入授權方法,首先從快取獲取wxuserinfo物件,如果有說明之前已經授權過,直接進入初始化方法。如果沒有,判斷url是否包含code,有code說明是進入授權頁**後的頁面,那麼通過code換取使用者資訊即可。沒有code,即使用者第一次進入該頁面,引導去授權頁,redirect_uri為當前頁面位址。
getwxuserinfo方法:
/** * 授權後獲取使用者的基本資訊
*/getwxuserinfo:
function
(par),
type : "get",
url : wx_root + "wechat/authorization",
success :
function
(json)
} catch
(e) }}
});},
/**這裡有乙個授權access_token,切記:授權access_token非全域性access_token ,需要使用快取,這裡我使用的redis,具體配置不多說後面寫相關配置博文,當然也可以使用ehcache,關於ehcahe配置在我的第一篇部落格中有詳細介紹。* @param
code 使用一次後失效
* *
@return
使用者基本資訊
}
/*** 根據code 獲取授權的token 僅限授權時使用,與全域性的access_token不同
* @param
code
* @return
* @throws
ioexception
* @throws
clientprotocolexception
*/public string getoauthaccesstoken(string code) throws
clientprotocolexception, ioexception,realtime",integer.parseint(r_expires_in), integer.parseint(r_expires_in) - 3600);}}
else
,rs_openid:{}",rs_access_token,rs_openid);
}return
getoauthuserinfo(rs_access_token,rs_openid);
}/**
* 根據授權token獲取使用者資訊
* @param
access_token
* @param
openid
* @return
*/public
string getoauthuserinfo(string access_token,string openid)
catch
(ioexception e)
return
null
; }
微信開發之微信網頁授權 完整示例
二 總共有5個步驟 1 使用者同意授權,獲取code 2 通過code換取網頁授權access token 3 重新整理access token 如果需要 4 拉取使用者資訊 需scope為 snsapi userinfo 5 附 檢驗授權憑證 access token 是否有效 三 每乙個步驟的實...
微信開發之微信網頁授權 完整示例
二 總共有5個步驟 1 使用者同意授權,獲取code 2 通過code換取網頁授權access token 3 重新整理access token 如果需要 4 拉取使用者資訊 需scope為 snsapi userinfo 5附 檢驗授權憑證 access token 是否有效 三 每乙個步驟的實現...
微信公眾平台開發 微信網頁授權
條件 關於網頁授權的兩種scope的區別說明 以snsapi userinfo為scope發起的網頁授權,彈出授權頁面,可通過openid拿到暱稱 性別 所在地。並且,即使在未關注的情況下,只要使用者授權,也能獲取其資訊。關於網頁授權access token和普通access token的區別 而普...