July 13th, 2010

OAUTH 1.0, 1.0A и 2.0 в одном течении

 В силу стремительного распространения OAUTH, решил внедрить его в своих проектах. Начал разбираться, выяснилось что есть аж три версии протокола: 1.0, 1.0A и 2.0. Побродил по cpan и нашел реализацию только 1.0 и 1.0A. Казалось бы этого должно хватить, да вот у twitter 1.0A, а у facebook 2.0. Хочется поддерживать обе социальные сети, в силу их популярности. Протокол 2.0 никто не реализовал на перл. Ну что же, занялся этим сам.

Почитал спецификацию всех протоколов. Составил схему в mindmanager, чтобы понять как их объединить. И написал модуль, который поддерживает все существующие версии протокола. Пока выложил только на github . Документации думаю пока хватит, никак не соберусь ее дописать ...

OAUTH в Mojo и Mojolicious

 После написания модуля для всех версий протокола OAUTH преступил к использованию этого добра в проектах на Mojolicious. В итоге получился очень удобный плагин. Прикрутить его проще простого:

my $config = {
provider1 => {
# provider1 config params
},
provider2 => {
# provider2 config params
},
};

# Mojolicious
$self->plugin('o_auth', {
'config' => $config,
});

# Mojolicious::Lite
plugin 'o_auth', {
'config' => $config,
};

Плагин сам создает роутеры для инициализации и коллбэка от провайдера. На github есть пример реализации.