Я, наконец, сделал это. Просто следуйте этим руководством
http://blogs.msdn.com/b/onenotedev/archive/2014/07/23/how-to-authenticate-with-microsoft-account-in-a-chrome-extension.aspx
и у вас есть код здесь
https://github.com/jameslau-MSFT/MSAuthFromChromeExtSample
высокого уровня шаги
Вот вещи, которые нужно сделать в высокопроизводительном уровень:
- Создайте идентификатор клиента и убедитесь, что настройки API установлены правильно.
- Правильно настройте расширение Chrome, чтобы использовать хотя бы 1 скрипт контента. Это нам понадобится в № 4 ниже.
- Создайте пользовательский интерфейс в своем расширении Chrome для входа в систему, убедившись, что вы правильно настроили URL-адрес перенаправления на «https://login.live.com/oauth20_desktop.srf» и тип ответа установлен на «токен».
- В своем сценарии содержимого расширения Chrome обратите внимание на всплывающее окно из потока входа учетной записи Microsoft. В нужный момент времени мы поймаем auth_token, сохраним его и закроем всплывающее окно.
Manifest должно быть что-то вроде этого
{
"name": "MSAuthFromChromeExtSample",
"short_name": "MSAChromeExt",
"version": "1.0.0",
"description": "Chrome extension that demonstrates how to authenticate against Microsoft Account.",
/*"background":{
"page": "background.html"
},*/
"browser_action": {
/* "default_icon": {
"19": "./assets/icons/icon-19.png",
"38": "./assets/icons/icon-38.png"
},*/
"default_title": "MSA Auth Sample",
"default_popup": "./html/popup.html"
},
"content_scripts": [
{
"matches": ["*://*/*"],
"js": ["lib/jquery.min.js", "js/script.js"],
"run_at" : "document_end"
}
],
"permissions": ["history","tabs","storage", "webRequest", "notifications", "<all_urls>"],
"manifest_version": 2,
"update_url": "http://clients2.google.com/service/update2/crx",
"content_security_policy": "script-src 'self' https://js.live.net; object-src 'self'"
}
Несколько вещей отметить:
- Мы включили JS/script.js как скрипт контента. Эти сценарии загружаются каждый раз, когда документ загружается в окно или вкладку. Нам нужно это, чтобы выполнить № 4 выше. Мы также включили lib/jquery.min.js в качестве сценария контента, потому что я хотел иметь возможность использовать jquery в файле script.js.
- Мы включили «хранилище» в разрешениях, потому что позже мы будем использовать хранилище Chrome для хранения auth_token.
- Мы включили эту строку: "content_security_policy": "script-src 'self' https://js.live.net; object-src 'self' ', поэтому библиотека JavaScript LiveSDK может быть успешно загружена из всплывающего окна.html
- browser_action.default_popup установлен в "./html/popup.html" - это указывает HTML, который будет отображаться, когда пользователь нажимает кнопку расширения браузера. Мы будем использовать это, чтобы показать интерфейс входа в систему.
Войти код
$('a#signin').click(function() {
$('div#signin_status').text('');
WL.init({
client_id: "000000004410CD1A", // replace with your own Client ID!!
redirect_uri: "https://login.live.com/oauth20_desktop.srf",
response_type: "token"
});
WL.login({
scope: ["wl.signin", "office.onenote_create"]
});
return false;
});
Содержание сценария
$(window).load(function() {
if (window.location.origin == "https://login.live.com") {
var hash = window.location.hash;
// get access token
var start = hash.indexOf("#access_token=");
if (start >= 0) {
start = start + "#access_token=".length;
var end = hash.indexOf("&token_type");
var access_token = hash.substring(start, end);
// Store it
chrome.storage.local.set({"access_token":access_token});
// Close the window
window.close();
}
}
});
Документах есть образец OAuth. –
Я знаю, но не работает – Lopes
«Не работает» не заставит вас далеко ходить на s.o. –