The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

RT::Authen::OAuth2::Google - Handler for Google OAuth2 logins

Example Metadata

    Google returns something like this:

     "id": "123456789012345678901",
     "email": "alice@wonderland.com",
     "verified_email": true,
     "name": "Alice Smith",
     "given_name": "Alice",
     "family_name": "Smith",
     "picture": "https://lh6.googleusercontent.com/big-ugly-url-path/photo.jpg",
     "locale": "en",
     "hd": "wonderland.com"

Configuring Google

    Set up a Google Developer's console associated with your organization's Google account. See https://console.developers.google.com

    Create a project. Under Credentials, create an OAuth Client ID, and select Web Application. Enter your Authorized Redirect URI in this form:

        https://www.your-rt-domain.com/NoAuth/OAuthRedirect

    The path /NoAuth/OAuthRedirect must be exactly as listed here, but you should change your protocol and domain to match your configuration.

    Make a note of the Client ID and Client secret listed on this page. You will need to put these in your RT_SiteConfig.pm - documentation is in the etc/OAuth_Config.pm file in this module.

    Click Create. Note if you edit the URI later, you may need to click Save twice. The Google user interface is a bit finicky.

Metadata()

    Takes one scalar string arg, containing the decoded response from the protected resource server. Returns a hash containing key/value pairs of user profile metadata items. Google returns JSON.