Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Oauth2 Unsplash Laravel Package

hughbertd/oauth2-unsplash

OAuth2 client provider for Unsplash built on league/oauth2-client. Install via Composer and use the Unsplash provider to run the Authorization Code flow, fetch access tokens, and retrieve the authenticated user (resource owner) for API access.

View on GitHub
Deep Wiki
Context7

Unsplash Provider for OAuth 2.0 Client

Build Status

Provides Unsplash OAuth 2.0 support as an implementation of PHP League's OAuth 2.0 Client

Installation

To install, use composer:

composer require hughbertd/oauth2-unsplash

Usage

Usage is the same as The League's OAuth client, using \CrewLabs\OAuth2\Client\Provider\Unsplash as the provider.

Authorization Code Flow

<?php
require_once('./vendor/autoload.php');
session_start();

$provider = new \Unsplash\OAuth2\Client\Provider\Unsplash([
    'clientId' => '{clientId}',
    'clientSecret' => '{clientSecret}',
    'redirectUri' => 'http://example.com',
]);

if (!isset($_GET['code'])) {
    // If we don't have an authorization code then get one
    $authUrl = $provider->getAuthorizationUrl();
    $_SESSION['oauth2state'] = $provider->getState();
    header('Location: ' . $authUrl);
    exit;
}

if (isset($_GET['code']) && !isset($_SESSION['token'])) {
    try {
        // Try to get an access token (using the authorization code grant)
        $token = $provider->getAccessToken('authorization_code', [
            'code' => $_GET['code']
        ]);

    } catch (Exception $e) {
        print($e->getMessage());
        exit;
    }

    // Use this to interact with an API on the users behalf
    $_SESSION['token'] = $token->getToken();
}

if (isset($_SESSION['token'])) {
    $user = $provider->getResourceOwner($_SESSION['token']);
    printf('Hello %s!', $user->getName());
    return;
}

Testing

$ ./vendor/bin/phpunit

Credits

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
calmfox/watch-sylius
damienfern/grpc-symfony-bundle
atoolo/index-bundle
atoolo/genai-bundle
coprotoai/laravel-ticket
davidjln/llm-carbon-bundle
cryonighter/valid-request-bundle
coolms/taxonomy-bundle
coolms/field-bundle
articulate-orm/symfony
aaix/laravel-tall-architect
ephoto/akeneo-connector
emmanuelballery/eb-plantumlbundle
emielburgman/symfony-visitor-beacon
emielburgman/symfony-visit-storage
emielburgman/symfony-security-headers
emielburgman/symfony-log-viewer
emarref/xdebug-bundle
emarref/pubnub-bundle
elriseio/finance-money-bundle