微信開發之Author網頁授權

2022-03-11 16:43:50 字數 2280 閱讀 5843

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) }}

});},

/**

* @param

code 使用一次後失效

* *

@return

使用者基本資訊

}

這裡有乙個授權access_token,切記:授權access_token非全域性access_token ,需要使用快取,這裡我使用的redis,具體配置不多說後面寫相關配置博文,當然也可以使用ehcache,關於ehcahe配置在我的第一篇部落格中有詳細介紹。

/**

* 根據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的區別 而普...