资讯专栏INFORMATION COLUMN

一个简单的PHP微信OAuth2.0登录客户端

shengguo / 1673人阅读

摘要:想法最近公司要求接入微信,支付宝三方登录于是我萌生了一个想法,贡献一个开箱即用的的登录客户端,方便以后使用。也认识到想要把所有知识融会贯通起来,创建一个好的项目是很不容易的。

想法
最近公司要求接入微信,支付宝三方登录, 于是我萌生了一个想法,贡献一个开箱即用的OAuth2.0的登录客户端,方便以后使用。
基本思想
通过这次经历学到了不少东西,包括git,github的使用, 面向对象程序设计,单元测试等等,感觉受益颇多。
也认识到想要把所有知识融会贯通起来,创建一个好的项目是很不容易的。还是要多实践才能出真知
实现
基本抽象
Provider 服务提供者 例如 支付宝,微信等OAuth服务端

授权类型 旨在区分各种不同的授权类型 如 authorization, password 等
getName();
        $provided = array_merge($defaults, $options);

        $this->checkRequiredParameters($provided);

        return $provided;
    }

    abstract protected function checkRequiredParameters(array $options);
}
使用

redirect.php

 "you client id",
        "clientSecret" => "you client secret",
        "redirectUri" => "redirect uri"
    ]);

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

    header("Location: ".$url);

callback.php

    # 微信
    $wechat = new CnOAuthProviderWechatOfficialAccount([
        "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 {
        // 用户取消授权
    }

希望有相同想法的一起完善,指教
项目地址CnOAuth

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28231.html

相关文章

  • 说说微信扫码登录

    摘要:详情接口我们这里主要讲的是网站应用,网站应用微信登录是基于协议标准构建的微信授权登录系统即上面的协议。在微信客户端授权登录获取用户信息的可以查看。微信授权登录目前支持模式,适用于拥有端的应用授权。 一、OAuth2.0 OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。 ...

    Jokcy 评论0 收藏0
  • PHPOauth2.0尝试 - OpenID Connect

    摘要:基础简要而言是一种安全机制用于应用连接到身份认证服务器获取用户信息并将这些信息以安全可靠的方法返回给应用。这些信息被保存在身份认证服务器以确保特定的客户端收到的信息只来自于合法的应用平台。 OpenID Connect OpenID Connect简介 OpenID Connect是基于OAuth 2.0规范族的可互操作的身份验证协议。它使用简单的REST / JSON消息流来实现,和...

    saucxs 评论0 收藏0
  • JWT、OAuth 2.0、session 用户授权实战

    摘要:为用户提供授权以允许用户操作非公开资源,有很多种方式。具体的代码根据不同的授权方案而有所不同。使用授权原理利用来验证用户,有两种机制实现。使用来实现用户授权主要用于签发如果有将异步的签名。注意这里的与之前用于签发的应该是同一个。 在很多应用中,我们都需要向服务端提供自己的身份凭证来获得访问一些非公开资源的授权。比如在一个博客平台,我们要修改自己的博客,那么服务端要求我们能够证明 我是...

    Jochen 评论0 收藏0
  • 基于oauth 2.0 实现第三方开放平台

    摘要:本文单纯从简单的技术实现来讲,不涉及开放平台的多维度的运营理念。它的特点就是通过客户端的后台服务器,与服务提供商的认证服务器进行互动能够满足绝大多数开放平台认证授权的需求。 本文单纯从简单的技术实现来讲,不涉及开放平台的多维度的运营理念。 什么是开放平台 通过开放自己平台产品服务的各种API接口,让其他第三方开发者在开发应用时根据需求直接调用,例如微信登录、QQ登录、微信支付、微博登录...

    Simon 评论0 收藏0
  • 基于oauth 2.0 实现第三方开放平台

    摘要:本文单纯从简单的技术实现来讲,不涉及开放平台的多维度的运营理念。它的特点就是通过客户端的后台服务器,与服务提供商的认证服务器进行互动能够满足绝大多数开放平台认证授权的需求。 本文单纯从简单的技术实现来讲,不涉及开放平台的多维度的运营理念。 什么是开放平台 通过开放自己平台产品服务的各种API接口,让其他第三方开发者在开发应用时根据需求直接调用,例如微信登录、QQ登录、微信支付、微博登录...

    xiaodao 评论0 收藏0

发表评论

0条评论

shengguo

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<