利用Implicit Grant授权的模式,在授权认证之后直接从回调链接URL获取access_token,优点是方便,不需要后端,缺点是不能刷新access_token,每一个月需要重新授权一次。适合轻网页应用。
授权链接:
https://openapi.baidu.com/oauth/2.0/authorize?response_type=token?client_id=CLIENT_ID?redirect_uri=http%3A%2F%2REDIRECT.URI%?scope=basic+netdisk?display=popup
从回调地址获取access_token:
function getQueryStringRegExp(name) {
var reg = new RegExp("(^|?|&)" + name + "=([^&]*)(s|&|$)", "i");
if (reg.test(location.href)) return unescape(RegExp.$2.replace(/+/g, " "));
return null;
}; //这个函数用以直接获取地址栏URL中的某个fragment
可以直接使用本页面作为回调页面。加一个授权验证即可。
var accessToken = getQueryStringRegExp('access_token'); // 获取access_token
if (accessToken != null) { // 如果access_token存在,就直接进行用户授权验证
$.ajax({
url: 'https://openapi.baidu.com/rest/2.0/passport/users/isAppUser?access_token=' + accessToken,
dataType: 'jsonp'
}).done(function(data) {
var isAuth;
if (data.result == 1) { // 授权验证的返回值中的result参数为'1'的话,就是已经授权了
isAuth = '已授权';
/* 获取授权用户基本信息 */
$.ajax({
url: 'https://openapi.baidu.com/rest/2.0/passport/users/getLoggedInUser?access_token=' + accessToken,
dataType: 'jsonp'
}).done(function(data) {
/*
data.uid 用户数字id
data.uname 用户名
data.portrait 用户头像id
头像的链接为:
small image: http://tb.himg.baidu.com/sys/portraitn/item/{$portrait}
large image: http://tb.himg.baidu.com/sys/portrait/item/{$portrait}
*/
});
/* 获取授权用户的个人云存储的基本信息 */
$.ajax({
url: 'https://pcs.baidu.com/rest/2.0/pcs/quota?method=info?access_token=' + accessToken,
dataType: 'jsonp'
}).done(function(data) {
/*
data.quota 是空间总量
data.used 是已用容量
*/
});
} else {
isAuth = '未授权'; // 未授权的result值为'0'
}
});
}