Giter Club home page Giter Club logo

cnoauth's Introduction

CnOAuth


一个简单、开箱即用的OAuth2客户端

TravisCI

supported list 支持列表

  1. alipay 支付宝
  2. wechat 微信 公众号 网页登录
  3. weibo 微博
  4. eleme 饿了么商户

requires

  • php >= 7.0
  • openssl (if using alipay)
  • guzzlehttp ^6.3

install 安装

using composer

composer require suntianxiang/cn-oauth

usage 使用

  1. wechat 微信

redirect.php

    # 微信
    $wechat = new \CnOAuth\Provider\WechatOfficialAccount([
        'clientId' => 'you client id',
        'clientSecret' => 'you client secret',
        'redirectUri' => 'redirect uri'
    ]);

    $url = $wechat->getAuthorizationUrl([
        'scope' => $wechat->getDefaultScopes(),
        'state' => 'state'
    ]);

    header('Location: '.$url);

callback.php

    # 微信
    $wechat = new \CnOAuth\Provider\WechatOfficialAccount([
        'clientId' => 'you client id',
        'clientSecret' => 'you client secret',
        'redirectUri' => 'redirect uri'
    ]);
    $grant = $wechat->getGrant('authorization');

    if ($grant->getCode()) {
        $access_token = $wechat->getAccessToken($grant);

        $owner = $wechat->getResourceOwner($access_token);

        print_r($owner->toArray());
    } else {
        // 用户取消授权
    }
  1. alipay 支付宝

redirect.php

$alipay = new \CnOAuth\Provider\Alipay([
    'gatewayUrl' => 'https://openapi.alipay.com/gateway.do',
    'clientId' => '2017090408550236',
    'rsaPrivateKey' => 'your private key',
    'alipayrsaPublicKey' => 'your alipay public key [支付宝公钥]',
    'apiVersion' => '1.0',
    'signType' => 'RSA2',
    'postCharset' => 'UTF-8',
    'format' => 'json',
    'redirectUri' => 'you callback url'
]);

$url = $alipay->getAuthorizationUrl([
    'scope' => $provider->getDefaultScopes(),
    'state' => mt_rand(1000, 9999)
]);

header('Location: '.$url);

callback.php

    $alipay = new \CnOAuth\Provider\Alipay([
        'gatewayUrl' => 'https://openapi.alipay.com/gateway.do',
        'clientId' => '2017090408550236',
        'rsaPrivateKey' => 'your private key',
        'alipayrsaPublicKey' => 'your alipay public key [支付宝公钥]',
        'apiVersion' => '1.0',
        'signType' => 'RSA2',
        'postCharset' => 'UTF-8',
        'format' => 'json',
        'redirectUri' => 'you callback url'
    ]);

    $grant = $alipay->getGrant('authorization');

    if ($grant->getCode()) {
        $access_token = $alipay->getAccessToken($grant);

        $owner = $alipay->getResourceOwner($access_token);

        print_r($owner->toArray());
    } else {
        // user cancel auth
    }

Define Provider 定义自己的提供者

1. create a provider 继承AbstractProvider
    See CnOAuth\Provider\AbstractProvider.php
        CnOAuth\Provider\ResourceOwnerInterface.php
2. create a grant type 继承AbstractGrant
    See CnOAuth\Grant\AbstractGrant
3. implements ResourceOwnerInterface

cnoauth's People

Contributors

suntianxiang avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.