2009-08-03 3 views
46

Я планирую создать приложение, использующее JavaScript, и ему необходимо использовать OAuth для аутентификации пользователя для веб-сайта. Может ли кто-нибудь помочь мне, пожалуйста? Любой пример кода? Я знаю о библиотеке Google Code Javascript OAuth, но я не знаю, как осуществить это ..приложение, использующее OAuth и javascript

ответ

51

Существует реализация клиента JS для OAuth здесь: http://oauth.googlecode.com/svn/code/javascript/

Он содержит пример кода, чтобы вы работаете. В принципе, что вы делаете это:

var url = "..."; 
var accessor = { 
    token: "...", 
    tokenSecret: "...", 
    consumerKey : "...", 
    consumerSecret: "..." 
}; 

var message = { 
    action: url, 
    method: "GET", 
    parameters: {...} 
}; 

OAuth.completeRequest(message, accessor);   
OAuth.SignatureMethod.sign(message, accessor); 
url = url + '?' + OAuth.formEncode(message.parameters); 

// send request to 'url' 
... 

Cheers, Matthias

+38

Я думаю, что параметры tokenSecret и consumerSekret должны быть секретом! Как они могут оставаться секретными при загрузке в браузер? !!! – Meysam

+1

Использование SSL, например. Но, да, OAuth в среде браузера, безусловно, подозревает проблемы безопасности. – Matthias

+0

Это для oAuth 1.0a или 2.0? – IsmailS

11

Указанные проблемы могут быть решены с помощью YQL: http://derek.io/blog/2010/how-to-secure-oauth-in-javascript/

+1

По крайней мере, в некоторой степени. Но тогда вы полагаетесь на чужую бэкэнд-технологию вместо своей собственной или нет, что и было первоначальной целью. – WrongAboutMostThings

0

Если вы пишете Firefox (или другой Mozilla) addon, рассмотрите oauthorizer. Я использую это для latest version goo.gl lite. Тем не менее, я столкнулся с некоторыми проблемами, получившими одобрение для сайта Mozilla Add-Ons, с которым я сейчас работаю.

3

Я написал общую библиотеку JavaScript OAuth 2.0.

+0

можете ли вы отправить пример аутентификации в приложение Google App Engine? Я боролся с этим в течение 2 дней. Ваша библиотека, похоже, не поддерживает 3 обратных вызова, «OAuthGetRequestToken», «OAuthAuthorizeToken» и «OAuthGetAccessToken»? –

Смежные вопросы