jenssegers/oauth

基于 Lusitanian/PHPoAuthLib 的 Laravel OAuth 库

v2.0.2 2017-01-25 08:46 UTC

This package is auto-updated.

Last update: 2024-08-25 19:32:53 UTC


README

Build Status Coverage Status

这是一个 Laravel OAuth 1 和 2 库,使用 PHPoAuthLib。该库共享 Laravel 会话以存储令牌,并支持 Laravel 中引入的服务配置文件。

支持的服务

  • OAuth1
    • BitBucket
    • Etsy
    • FitBit
    • Flickr
    • Scoop.it!
    • Tumblr
    • Twitter
    • Xing
    • Yahoo
  • OAuth2
    • Amazon
    • BitLy
    • Box
    • Dailymotion
    • Dropbox
    • Facebook
    • Foursquare
    • GitHub
    • Google
    • Harvest
    • Heroku
    • Instagram
    • Jawbone UP
    • LinkedIn
    • Mailchimp
    • Microsoft
    • PayPal
    • Pocket
    • Reddit
    • RunKeeper
    • SoundCloud
    • Spotify
    • Ustream
    • Vkontakte
    • Yammer

安装

使用 composer 安装

composer require jenssegers/oauth

app/config/app.php 中添加服务提供者

'Jenssegers\OAuth\OAuthServiceProvider',

app/config/app.php 中添加 OAuth 别名

'OAuth'            => 'Jenssegers\OAuth\Facades\OAuth',

配置

此包支持通过位于 config/services.php 的服务配置文件进行配置

'facebook' => [
    'client_id'     => 'your-client-id',
    'client_secret' => 'your-client-secret',
    'scope'         => [],
]

使用方法

添加凭证后,您可以创建如下的 PHPoAuthLib 服务对象

$oauth = OAuth::consumer('facebook');

要覆盖默认的回调 URL 或作用域,请使用

$oauth = OAuth::consumer('facebook', URL::to('url'), ['email', 'publish_actions']);

一旦您有了服务对象,就可以用它来与服务的 API 交互。更多信息请查看 PHPoAuthLib

示例

Facebook API 的示例用法。

$facebook = OAuth::consumer('facebook');

// Response from Facebook
if ($code = Input::get('code'))
{
    $token = $facebook->requestAccessToken($code);

    $result = json_decode($facebook->request('/me'), true);

    echo 'Your unique facebook user id is: ' . $result['id'] . ' and your name is ' . $result['name'];
}

// Redirect to login
else
{
    return Redirect::away((string) $facebook->getAuthorizationUri());
}

更多示例请查看 PHPoAuthLib