在经历了Facebook被黑客攻击、用户信息泄露的冲击后,这家社交网络决定对安全问题更加严格。Facebook不断更新以防止Token泄露,现在我们再也无法像以前那样通过F12获取Facebook Token了。
获取 Token 以前非常容易。只需打开浏览器控制台(F12)。然后搜索短语 AEEEXXX 就是能找到Token。不过自从这次Facebook安全更新之后,这个方法好像不再有效了。
主要内容
什么是令牌?它在用户账户中起什么作用?
Token 是为了保护用户账户和在线交易而发明的。关于它的知识点非常多,我无法在一篇文章中详尽阐述。为了帮助您更好地理解 Token,我将简要介绍一下它的概念。
Token 也可以理解为 电子签名 用于验证用户身份。这些数据将被编码成一串字母和数字。每当用户想要执行与安全相关的操作时,服务器系统都会仔细检查令牌。
目的是识别用户身份,使该用户不能拿走或使用其他用户的产品。一个实际的例子是在线交易中,每个交易流程都必须仔细检查Token,以验证客户身份。
获取完整权利令牌的说明
获取完整权限的 iPhone 令牌
步骤1: 使用组合键打开浏览器上的书签栏 Ctrl + Shift + B
第 2 步: 右键单击书签栏并选择添加页面
屏幕将显示创建书签所需的内容:
- 姓名:随意命名。 示例:获取 IPhone Token 完整权限
- URL:粘贴以下代码并点击 节省
1
|
javascript:var email = prompt(“输入帐户:”,“用户名/电子邮件/电话号码”);var password = prompt(“输入密码:”,“密码”);var url =“https://b-graph.facebook.com/auth/login?email=”+email+“&password=”+password+“&access_token=6628568379|c1e620fa708a1d5696fb991c1bde5662&method=post”;var win = window.open(url,'_blank');win.focus();
|
javascript:var email = prompt(“输入帐户:”,“用户名/电子邮件/电话号码”);var password = prompt(“输入密码:”,“密码”);var url =“https://b-graph.facebook.com/auth/login?email=”+email+“&password=”+password+“&access_token=6628568379|c1e620fa708a1d5696fb991c1bde5662&method=post”;var win = window.open(url,'_blank');win.focus();
步骤3: 前往 Facebook.com 并点击“书签”获取 IPhone Token 完整权限”。
输入需要获取IPhone Token的账户的用户名和密码即可完成。
观看作者 TUT Hieu Pham Doan 的视频教程:
获取 Instagram 的完整权利令牌
访问 Instagram 授权链接。选择继续为...直到结束。
然后按打开控制台界面 F12 或组合 Ctrl + Shift + C。
将窗口切换到控制台选项卡,如上所示,然后粘贴下面的 JavaScript 并按 Enter。
1
|
javascript:var uid = document.cookie.match(/c_user=(\d+)/)[1],dtsg = document.getElementsByName(“fb_dtsg”)[0].value,http = new XMLHttpRequest,url = “//www.facebook.com/v1.0/dialog/oauth/confirm”,params = “fb_dtsg=” + dtsg + “&app_id=124024574287414&redirect_uri=fbconnect://success&display=page&access_token=&from_post=1&return_format=access_token&domain=&sso_device=ios&_CONFIRM=1&_user=” + uid;http.open(“POST”, url, !0), http.setRequestHeader(“Content-type”, “application/x-www-form-urlencoded”), http.onreadystatechange = function() {if (4 == http.readyState && 200 == http.status) {var a = http.responseText.match(https://www.anonyviet.com/access_token=(.*)(?=&expires_in)/);a = a ? a[1] : “Failed to Get Access Token.”, prompt(“Token”, a);}}, http.send(params);
|
获取完整权限令牌 2019 需要用户和密码
您需要输入 电子邮件 和 密码 在前两行,然后将代码复制到 F12 中的控制台中。
作者代码 迪厄德夫 在 github:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
变量 电子邮件 = “你的邮箱”;
变量 密码 = “你的密码”;
变量 基本网址 = “https://api.facebook.com/restserver.php”;
变量 API 秘密 = “62f8ce9f74b12f84c123cc23437a4a32”;
变量 md5 = 功能(d){结果 = 米(五(是(十(d),8*d.长度)));返回 结果.转小写()};功能 米(d){为了(变量 _,米=“0123456789ABCDEF”,f=“”,r=0;r<d.长度;r++)_=d.字符代码(r),f+=米.字符(_>>>4&15)+米.字符(15&_);返回 f}功能 十(d){为了(变量 _=大批(d.长度>>2),米=0;米<_.长度;米++)_[米]=0;为了(米=0;米<8*d.长度;米+=8)_[米>>5]|=(255&d.字符代码(米/8))<米%32;返回 _}功能 五(d){为了(变量 _=“”,米=0;米<32*d.长度;米+=8)_+=细绳.来自CharCode(d[米>>5]>>>米%32&255);返回 _}功能 是(d,_){d[_>>5]|=128<_%32,d[14+(_+64>>>9<4)]=_;为了(变量 米=1732584193,f=–271733879,r=–1732584194,我=271733878,n=0;n<d.长度;n+=16){变量 h=米,吨=f,克=r,e=我;f=md5_ii(f=md5_ii(f=md5_ii(f=md5_ii(f=md5_hh(f=md5_hh(f=md5_hh(f=md5_hh(f=md5_gg(f=md5_gg(f=md5_gg(f=md5_gg(f=md5_ff(f=md5_ff(f=md5_ff(f=md5_ff(f,r=md5_ff(r,我=md5_ff(我,米=md5_ff(米,f,r,我,d[n+0],7,–680876936),f,r,d[n+1],12,–389564586),米,f,d[n+2],17,606105819),我,米,d[n+3],22,–1044525330),r=md5_ff(r,我=md5_ff(我,米=md5_ff(米,f,r,我,d[n+4],7,–176418897),f,r,d[n+5],12,1200080426),米,f,d[n+6],17,–1473231341),我,米,d[n+7],22,–45705983),r=md5_ff(r,我=md5_ff(我,米=md5_ff(米,f,r,我,d[n+8],7,1770035416),f,r,d[n+9],12,–1958414417),米,f,d[n+10],17,–42063),我,米,d[n+11],22,–1990404162),r=md5_ff(r,我=md5_ff(我,米=md5_ff(米,f,r,我,d[n+12],7,1804603682),f,r,d[n+13],12,–40341101),米,f,d[n+14],17,–1502002290),我,米,d[n+15],22,1236535329),r=md5_gg(r,我=md5_gg(我,米=md5_gg(米,f,r,我,d[n+1],5,–165796510),f,r,d[n+6],9,–1069501632),米,f,d[n+11],14,643717713),我,米,d[n+0],20,–373897302),r=md5_gg(r,我=md5_gg(我,米=md5_gg(米,f,r,我,d[n+5],5,–701558691),f,r,d[n+10],9,38016083),米,f,d[n+15],14,–660478335),我,米,d[n+4],20,–405537848),r=md5_gg(r,我=md5_gg(我,米=md5_gg(米,f,r,我,d[n+9],5,568446438),f,r,d[n+14],9,–1019803690),米,f,d[n+3],14,–187363961),我,米,d[n+8],20,1163531501),r=md5_gg(r,我=md5_gg(我,米=md5_gg(米,f,r,我,d[n+13],5,–1444681467),f,r,d[n+2],9,–51403784),米,f,d[n+7],14,1735328473),我,米,d[n+12],20,–1926607734),r=md5_hh(r,我=md5_hh(我,米=md5_hh(米,f,r,我,d[n+5],4,–378558),f,r,d[n+8],11,–2022574463),米,f,d[n+11],16,1839030562),我,米,d[n+14],23,–35309556),r=md5_hh(r,我=md5_hh(我,米=md5_hh(米,f,r,我,d[n+1],4,–1530992060),f,r,d[n+4],11,1272893353),米,f,d[n+7],16,–155497632),我,米,d[n+10],23,–1094730640),r=md5_hh(r,我=md5_hh(我,米=md5_hh(米,f,r,我,d[n+13],4,681279174),f,r,d[n+0],11,–358537222),米,f,d[n+3],16,–722521979),我,米,d[n+6],23,76029189),r=md5_hh(r,我=md5_hh(我,米=md5_hh(米,f,r,我,d[n+9],4,–640364487),f,r,d[n+12],11,–421815835),米,f,d[n+15],16,530742520),我,米,d[n+2],23,–995338651),r=md5_ii(r,我=md5_ii(我,米=md5_ii(米,f,r,我,d[n+0],6,–198630844),f,r,d[n+7],10,1126891415),米,f,d[n+14],15,–1416354905),我,米,d[n+5],21,–57434055),r=md5_ii(r,我=md5_ii(我,米=md5_ii(米,f,r,我,d[n+12],6,1700485571),f,r,d[n+3],10,–1894986606),米,f,d[n+10],15,–1051523),我,米,d[n+1],21,–2054922799),r=md5_ii(r,我=md5_ii(我,米=md5_ii(米,f,r,我,d[n+8],6,1873313359),f,r,d[n+15],10,–30611744),米,f,d[n+6],15,–1560198380),我,米,d[n+13],21,1309151649),r=md5_ii(r,我=md5_ii(我,米=md5_ii(米,f,r,我,d[n+4],6,–145523070),f,r,d[n+11],10,–1120210379),米,f,d[n+2],15,718787259),我,米,d[n+9],21,–343485551),米=safe_add(米,h),f=safe_add(f,吨),r=safe_add(r,克),我=safe_add(我,e)}返回 大批(米,f,r,我)}功能 md5_cmn(d,_,米,f,r,我){返回 safe_add(位元(safe_add(safe_add(_,d),safe_add(f,我)),r),米)}功能 md5_ff(d,_,米,f,r,我,n){返回 md5_cmn(_&米|~_&f,d,_,r,我,n)}功能 md5_gg(d,_,米,f,r,我,n){返回 md5_cmn(_&f|米&~f,d,_,r,我,n)}功能 md5_hh(d,_,米,f,r,我,n){返回 md5_cmn(_^米^f,d,_,r,我,n)}功能 md5_ii(d,_,米,f,r,我,n){返回 md5_cmn(米^(_|~f),d,_,r,我,n)}功能 safe_add(d,_){变量 米=(65535&d)+(65535&_);返回(d>>16)+(_>>16)+(米>>16)<16|65535&米}功能 位元(d,_){返回 d<_|d>>>32–_};
变量 数据 = {
“api_key”: “882a8490361da98702bf97a021ddc14d”,
“电子邮件”: 电子邮件,
“格式”: “JSON”,
当地的: “vi_vn”,
方法: “授权登录”,
“密码”: 密码,
“返回 SSL 资源”: 0,
“v”: “1.0”
};
变量 字符串 = “”;
为了 (变量 钥匙 打印 数据){
如果 (数据.hasOwnProperty(钥匙)) {
字符串 += 钥匙 + “=” + 数据[钥匙];
}
}
字符串 += API 秘密;
变量 签名 = md5(字符串);
数据[“信号”] = 签名;
变量 参数 = “”;
为了 (变量 钥匙 打印 数据){
如果 (数据.hasOwnProperty(钥匙)) {
参数 += “&” + 钥匙 + “=” + 数据[钥匙];
}
}
变量 网址 = 基本网址 + “?” + 参数;
变量 赢 = 窗户.打开(网址, '_空白的');
赢.重点();
|
更新以获取完整权限令牌而无需输入密码
(已禁用)
使用下面的代码并将其粘贴到 F12 中的控制台中
1
|
JavaScript:变量 uid = 文档.曲奇饼.匹配(/c_用户=(\d+)/)[1],dtsg = 文档.通过名称获取元素(“fb_dtsg”)[0].价值,http = 新的 XMLHttp请求,网址 = “//www.facebook.com/v1.0/dialog/oauth/confirm”,参数 = “fb_dtsg=” + dtsg + “&app_id=124024574287414&redirect_uri=fbconnect%3A%2F%2Fsuccess&display=page&access_token=&from_post=1&return_format=access_token&domain=&sso_device=ios&_CONFIRM=1&_user=” + uid;http.打开(“邮政”, 网址, !0), http.设置请求头(“内容类型”, “应用程序/x-www-form-urlencoded”), http.就绪状态改变 = 功能() {如果 (4 == http.就绪状态 && 200 == http.地位) {变量 一个 = http.响应文本.匹配(/访问令牌=(.*)(?=&expires_in)/);一个 = 一个 ? 一个[1] : “无法获取访问令牌。”, 迅速的(“代币”, 一个);}}, http.发送(参数);
|
如果您无法使用该代码,请按照以下步骤操作:
步骤1: 访问此链接: http://bit.ly/2TlLQK0
第 2 步: 单击“接受权限”
步骤3: 返回并重复用户手册中的步骤。
获取 HTC 代币的代码
(已禁用)
1
2
3
4
5
6
7
8
9
10
11
|
变量 uid = 文档.曲奇饼.匹配(/c_用户=(\d+)/)[1],
dtsg = 文档.通过名称获取元素(“fb_dtsg”)[0].价值,
http = 新的 XMLHttp请求,
网址 = “//www.facebook.com/v1.0/dialog/oauth/confirm”,
参数 = “fb_dtsg=” + dtsg + “&app_id=165907476854626&redirect_uri=fbconnect%3A%2F%2Fsuccess&display=page&access_token=&from_post=1&return_format=access_token&domain=&sso_device=ios&__CONFIRM__=1&__user=” + uid;
http.打开(“邮政”, 网址, !0), http.设置请求头(“内容类型”, “应用程序/x-www-form-urlencoded”), http.就绪状态改变 = 功能() {
如果 (4 == http.就绪状态 && 200 == http.地位) {
变量 一个 = http.响应文本.匹配(/访问令牌=(.*)(?=&expires_in)/);
一个 = 一个 ? 一个[1] : “无法获取访问令牌,请确保您授权 HTC sense 应用程序”, 迅速的(“代币”, 一个);
}
}, http.发送(参数);
|
获取 iPhone Token 的代码
(已禁用)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
变量 fb_dtsg = 文档.通过名称获取元素('fb_dtsg')[0].价值;
变量 http = 新的 XMLHttp请求;
变量 数据 = 新的 表单数据();
数据.附加('fb_dtsg', fb_dtsg);
数据.附加('app_id', ‘165907476854626’);
数据.附加('redirect_uri', 'fbconnect://success');
数据.附加('展示', '弹出窗口');
数据.附加('访问令牌', ”);
数据.附加('sdk', ”);
数据.附加(‘来自帖子’, ‘1’);
数据.附加('私人的', ”);
数据.附加('tos', ”);
数据.附加('登录', ”);
数据.附加('读', ”);
数据.附加('写', ”);
数据.附加(“扩展”, ”);
数据.附加(‘社交确认’, ”);
数据.附加(确认, ”);
数据.附加(‘seen_scopes’, ”);
数据.附加(‘授权类型’, ”);
数据.附加('授权令牌', ”);
数据.附加(‘默认受众’, ”);
数据.附加(‘参考’, '默认');
数据.附加('返回格式', '访问令牌');
数据.附加('领域', ”);
数据.附加(“sso_设备”, “ios”);
数据.附加('__确认__', ‘1’);
http.打开('邮政', “https://www.facebook.com/v1.0/dialog/oauth/confirm”);
http.发送(数据);
http.就绪状态改变 = 功能(){
如果(http.就绪状态 == 4 && http.地位 == 200){
变量 token_ios = http.响应文本.匹配(/访问令牌=(.*?)&/)[1];
变量 http2 = 新的 XMLHttp请求;
http2.打开('得到', 'https://b-api.facebook.com/restserver.php?method=auth.getSessionForApp&format=json&access_token='+token_ios+'&new_app_id=6628568379&generate_session_cookies=1&__mref=message_bubble');
http2.发送();
http2.就绪状态改变 = 功能(){
如果(http2.就绪状态 == 4 && http2.地位 == 200){
变量 json_token_iphone = JSON.解析(http2.响应文本);
变量 访问令牌 = json_token_iphone.访问令牌;
迅速的(“iPhone 令牌”, 访问令牌);
}
}
}
}
|
按下 Enter 键,Token 将立即返回。