The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Plack::Middleware::HatenaOAuth - provide a login endpoint for Hatena OAuth

SYNOPSIS

  use Plack::Builder;
  use Plack::Session;

  my $app = sub {
      my $env = shift;
      my $session = Plack::Session->new($env);
      my $user_info = $session->get('hatenaoauth_user_info') || {};
      my $user_name = $user_info->{url_name};
      return [
          200,
          [ 'Content-Type' => 'text/html' ],
          [
              "<html><head><title>Hello</title><body>",
              $user_name
                  ? "Hello, id:$user_name !"
                  : "<a href='/login?location=/'>Login</a>"
          ],
      ];
  };

  builder {
      enable 'Session';
      enable 'Plack::Middleware::HatenaOAuth',
           consumer_key       => 'vUarxVrr0NHiTg==',
           consumer_secret    => 'RqbbFaPN2ubYqL/+0F5gKUe7dHc=',
           login_path         => '/login',
         # ua                 => LWP::UserAgent->new(...), # optional
           ;
      $app;
  };

DESCRIPTION

This middleware adds an endpoint to start Hatena OAuth authentication flow to your Plack app.

CONFIGURATIONS

consumer_key
consumer_secret
    consumer_key    => 'vUarxVrr0NHiTg=='
    consumer_secret => 'RqbbFaPN2ubYqL/+0F5gKUe7dHc='

A consumer key and consumer secret registered on the setting page for developers. Follow the instructions in the documentation on the devloper center for registration.

login_path
    login_path => '/login'

An endpoint for OAuth login, which is added to your Plack app.

ua
    ua => LWP::UserAgent->new(...)

A user agent to make a remote access to the OAuth server.

LICENSE

Copyright (C) Hatena Co., Ltd..

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHOR

mechairoi <ttsujikawa@gmail.com>

INA Lintaro <tarao.gnn@gmail.com>