擷取使用者資訊授權,取得授權碼(authCode)。
概述
wv.getAuthCode引導使用者授權其資訊給當前小程式,會彈出授權引導浮窗。請在使用者充分瞭解小程式的業務內容後再調用wv.getAuthCode,避免在小程式首屏調用wv.getAuthCode,損害使用者體驗。
通過wv.getAuthCode所取得的代表使用者授權的授權碼(authCode),後續需由小程式服務端使用,向平台換取實際資訊(如user_id、頭像、暱稱、手機號、地區、性別、出生日期等)。
入參
Object類型,參數如下:
參數 | 類型 | 必填 | 描述 |
scopes | Array | 否 | 授與類型。支援 auth_base、auth_user,參見下文scopes 說明。預設值auth_base。 |
success | Function | 否 | 調用成功的回呼函數。 |
fail | Function | 否 | 調用失敗的回呼函數。 |
scopes說明
一個scope表示開發人員需要請求使用者授權的許可權範圍。
scopes | 含義 | 後續鏈路 |
USER_ID | 授權擷取App使用者的唯一標識(user_id)。此方式為靜默授權,不會彈出授權浮窗。 | 將小程式擷取的auth_code傳入服務端以擷取使用者唯一標識(user_id)。 |
USER_NICKNAME | 授權擷取App使用者的暱稱。 | 將小程式擷取的auth_code傳入服務端以擷取使用者已授權的資訊。 |
USER_NAME | 授權擷取App使用者的名稱。 | 將小程式擷取的auth_code傳入服務端以擷取使用者已授權的資訊。 |
USER_LOGIN_ID | 授權擷取App使用者的登入ID。 | 將小程式擷取的auth_code傳入服務端以擷取使用者已授權的資訊。 |
HASH_LOGIN_ID | 授權擷取App使用者的登入ID的hash值。 | 將小程式擷取的auth_code傳入服務端以擷取使用者已授權的資訊。 |
USER_AVATAR | 授權擷取App使用者的頭像。 | 將小程式擷取的auth_code傳入服務端以擷取使用者已授權的資訊。 |
USER_GENDER | 授權擷取App使用者的性別。 | 將小程式擷取的auth_code傳入服務端以擷取使用者已授權的資訊。 |
USER_BIRTHDAY | 授權擷取App使用者的生日。 | 將小程式擷取的auth_code傳入服務端以擷取使用者已授權的資訊。 |
USER_NATIONALITY | 授權擷取App使用者的國籍。 | 將小程式擷取的auth_code傳入服務端以擷取使用者已授權的資訊。 |
USER_CONTACTINFO | 授權擷取App使用者的連絡方式。 | 將小程式擷取的auth_code傳入服務端以擷取使用者已授權的資訊。 |
auth_base | 授權擷取App使用者的唯一標識(user_id)。此方式為靜默授權,不會彈出授權浮窗。 | 將小程式擷取的auth_code傳入服務端以擷取使用者唯一標識(user_id)。 |
auth_user | 授權擷取App賬戶資訊。 | 將小程式擷取的auth_code傳入服務端以擷取使用者已授權的資訊。 |
出參
success回呼函數會收到一個 Object 類型的對象,其屬性如下:
屬性 | 類型 | 描述 |
authCode | String | 授權碼。 |
authErrorScopes | Object | 失敗的授與類型,key是授權失敗的scope,value是對應的錯誤碼。 |
authSuccessScopes | Array | 成功的授權scope。 |
使用者的每次授權動作都會產生一個新的auth_code。
fail回呼函數會收到一個Object類型的對象,其error欄位為錯誤碼,errorMessage為錯誤資訊:
錯誤碼 | 錯誤資訊 | 解決方案 |
11 | 使用者取消授權 | 充分說明擷取使用者資訊的用途和必要性,重新引導操作。 |
12 | Network Error | 授權相關網路請求失敗或逾時,請稍後重試。 |
13 | 未找到授權結果 | scopes入參包含無效值,請檢查scopes參數。 |
範例程式碼
window.WindVane.call('wv', 'getAuthCode', {scopes: ['auth_user']}, function(res) {
authCode = res.authCode;
}, function(e) {
alert('failure:' + JSON.stringify(e));
});