NAME Dancer2::Plugin::Auth::OAuth - OAuth for your Dancer2 app SYNOPSIS # just 'use' the plugin, that's all. use Dancer2::Plugin::Auth::OAuth; DESCRIPTION Dancer2::Plugin::Auth::OAuth is a Dancer2 plugin which tries to make OAuth authentication easy. The module is highly influenced by Plack::Middleware::OAuth and Dancer 1 OAuth modules, but unlike the Dancer 1 versions, this plugin only needs configuration (look mom, no code needed!). It automatically sets up the needed routes (defaults to /auth/$provider and /auth/$provider/callback). So if you define the Twitter provider in your config, you should automatically get /auth/twitter and /auth/twitter/callback. After a successful OAuth dance, the user info is stored in the session. What you do with it afterwards is up to you. CONFIGURATION The plugin comes with support for Facebook, Google, Twitter, GitHub, Stack Exchange and LinkedIn (other providers aren't hard to add, send me a pull request when you add more!) All it takes to use OAuth authentication for a given provider, is to add the configuration for it. The YAML below shows all available options. plugins: "Auth::OAuth": prefix: /auth [*] success_url: / [*] error_url: / [*] providers: Facebook: tokens: client_id: your_client_id client_secret: your_client_secret fields: id,email,name,gender,picture Google: tokens: client_id: your_client_id client_secret: your_client_secret Twitter: tokens: consumer_key: your_consumer_token consumer_secret: your_consumer_secret Github: tokens: client_id: your_client_id client_secret: your_client_secret Stackexchange: tokens: client_id: your_client_id client_secret: your_client_secret key: your_key site: stackoverflow Linkedin: tokens: client_id: your_client_id client_secret: your_client_secret fields: id,num-connections,picture-url,email-address VKontakte: # https://vk.com tokens: client_id: '...' client_secret: '...' fields: 'first_name,last_name,about,bdate,city,country,photo_max_orig,sex,site' api_version: '5.8' Odnoklassniki: # https://ok.ru tokens: client_id: your_client_id client_secret: your_client_secret application_key: your_application_key method: 'users.getCurrentUser' format: 'json' fields: 'email,name,gender,birthday,location,uid,pic_full' MailRU: tokens: client_id: your_client_id client_private: your_client_private client_secret: your_client_secret method: 'users.getInfo' format: 'json' secure: 1 Yandex: tokens: client_id: your_client_id client_secret: your_client_secret format: 'json' [*] default value, may be omitted. AUTHOR Menno Blom COPYRIGHT Copyright 2014- Menno Blom LICENSE This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.