在PHP应用中简化OAuth2.0身份验证集成:OAuth 2.0 Client

在PHP应用中简化OAuth2.0身份验证集成:OAuth 2.0 Client

阅读目录

这个包能够让你以很简单的方式在在PHP应用中集成OAuth2.0身份验证。
用法

验证代码流程

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

$provider = new League\OAuth2\Client\Provider\<ProviderName>(array(

    ‘clientId‘  =>  ‘XXXXXXXX‘,

    ‘clientSecret‘  =>  ‘XXXXXXXX‘,

    ‘redirectUri‘   =>  ‘https://your-registered-redirect-uri/‘,

    ‘scopes‘ => array(‘email‘, ‘...‘, ‘...‘),

));

if ( ! isset($_GET[‘code‘])) {

    // If we don‘t have an authorization code then get one

    header(‘Location: ‘.$provider->getAuthorizationUrl());

    exit;

} else {

    // Try to get an access token (using the authorization code grant)

    $token = $provider->getAccessToken(‘authorization_code‘, [

        ‘code‘ => $_GET[‘code‘]

    ]);

    // If you are using Eventbrite you will need to add the grant_type parameter (see below)

    $token = $provider->getAccessToken(‘authorization_code‘, [

        ‘code‘ => $_GET[‘code‘],

        ‘grant_type‘ => ‘authorization_code‘

    ]);

    // Optional: Now you have a token you can look up a users profile data

    try {

        // We got an access token, let‘s now get the user‘s details

        $userDetails = $provider->getUserDetails($token);

        // Use these details to create a new profile

        printf(‘Hello %s!‘, $userDetails->firstName);

    } catch (Exception $e) {

        // Failed to get user details

        exit(‘Oh dear...‘);

    }

    // Use this to interact with an API on the users behalf

    echo $token->accessToken;

    // Use this to get a new access token if the old one expires

    echo $token->refreshToken;

    // Number of seconds until the access token will expire, and need refreshing

    echo $token->expires;

}

回到顶部

Refreshing a Token

?


1

2

3

4

5

6

7

8

$provider = new League\OAuth2\Client\Provider\<ProviderName>(array(

    ‘clientId‘  =>  ‘XXXXXXXX‘,

    ‘clientSecret‘  =>  ‘XXXXXXXX‘,

    ‘redirectUri‘   =>  ‘https://your-registered-redirect-uri/‘

));

$grant = new \League\OAuth2\Client\Grant\RefreshToken();

$token = $provider->getAccessToken($grant, [‘refresh_token‘ => $refreshToken]);

回到顶部

Built-In Providers

这个包目前已经内置了支持:

  • Eventbrite
  • Facebook
  • Github
  • Google
  • Instagram
  • LinkedIn
  • Microsoft

项目主页:http://www.open-open.com/lib/view/home/1417502997514

时间: 2024-11-03 13:32:18

在PHP应用中简化OAuth2.0身份验证集成:OAuth 2.0 Client的相关文章

详解Angular开发中的登陆与身份验证

前言 由于 Angular 是单页应用,会在一开始,就把大部分的资源加载到浏览器中,所以就更需要注意验证的时机,并保证只有通过了验证的用户才能看到对应的界面. 本篇文章中的身份验证,指的是如何确定用户是否已经登陆,并确保在每次与服务器的通信中,都能够满足服务器的验证需求.注意,并不包括对具体是否具有某一个权限的判断. 对于登陆,主要是接受用户的用户名密码输入,提交到服务器进行验证,处理验证响应,在浏览器端构建身份验证数据. 实现身份验证的两种方式 目前,实现身份验证的方法,主要有两个大类: Co

在ASP.NET Core 2.0中使用Facebook进行身份验证

已经很久没有更新自己的技术博客了,自从上个月末来到天津之后把家安顿好,这个月月初开始找工作,由于以前是做.NET开发的,所以找的还是.NET工作,但是天津这边大多还是针对to B(企业)进行定制开发的,一是技术框架已经成型了,招收几个会CRUD的就好,二是小企业众多,给不了太多的钱,老板们大多比较关心这个程序员的工作年限,什么技术的不怎么关心.所以找工作一直碰壁,有看中的直接说我们给不了这么多,你如果要这个数可以考虑什么的.so,我就直接没考虑.一是钱少,二是技术垃圾,学不到什么东西. 所以前几

ASP.NET站点Windows身份验证集成AD域,非LDAP

.h2cls { background: #6fa833 none repeat scroll 0 0 !important; color: #fff; font-family: "微软雅黑", "宋体", "黑体", Arial; margin-bottom: 5px; padding-left: 15px } h3 { background-color: #f5f5f5; border-left: 13px solid #6fa833; co

Web验证方式--OAuth 2.0协议(1)

介绍 OAuth协议是用来解决第三方应用程序访问Http Service的时候的认证问题.举个例子:某视频网站支持用户通过微信登陆,然后获取用户在微信上的图像信息. 在这个场景里 微信充当的就是Http Service角色. 视频网站就是第三方应用 而视频网站从微信获取用户图像时,微信需要进行认证就是这里的认证问题 用户在微信上登陆后,产生的在视频网站中访问用户微信上的图像时所需的认证信息,就是OAuth解决认证问题的方式 名词定义 OAuth协议中定义了如下角色: Resource Owner

MVC中使用AuthorizeAttribute做身份验证操作

代码顺序为:OnAuthorization-->AuthorizeCore-->HandleUnauthorizedRequest 如果AuthorizeCore返回false时,才会走HandleUnauthorizedRequest 方法,并且Request.StausCode会返回401,401错误又对应了Web.config中的: <authentication mode="Forms"> <forms loginUrl="~/"

在Laravel中使用Middleware进行身份验证

新建一个中间件: 方法写在handle中 判断用户是否登录而且是否是管理员,不是的话返回到主页 新建判断是否为管理员的方法 在kernel定义一个中间件,key是admin 注册群组路由:prefix是路由前缀,访问路由会自动在前面加上路由前缀:middleware是key值,会去验证中间件 1在数据库中是管理员 成功 附: 注册单个路由的中间件: Route::get('admin/profile', ['middleware' => 'auth', function () { // }]);

SQL Server中服务器身份验证及用户登录

安装过程中,SQL Server 数据库引擎设置为"Windows 身份验证模式"或"SQL Server 和 Windows 身份验证模式". 安装完成后,您可以随时更改身份验证模式. 如果在安装过程中选择了"Windows 身份验证模式",则 sa 登录名将被禁用,安装程序会分配一个密码. 如果稍后将身份验证模式更改为"SQL Server 和 Windows 身份验证模式",则 sa 登录名仍处于禁用状态. 若要使用 s

EXCHANGE客户端访问服务器(CAS)中的身份验证方式

在部署完毕exchange后系统会自动建立IIS服务来响应相应的请求.客户端访问服务器(以下简称CAS)实质上是一台IIS服务器,在服务器中部署一套名为"Default web site"的站点来完成OWA.ecp.activesync.outlookanywhere.autodiscover等应用的响应. tips:Default web site 站点对应的是CAS服务器角色Exchange back end 站点对应的是邮箱服务器角色 如果想改变身份验证方式,启动IIS管理器,找

在Django中定制身份验证

在Django中定制身份验证 Django附带的认证对于大多数常见情况来说已经足够了,但您可能需要通过开箱即用的默认设置才能满足需求. 要为您的项目定制身份验证,需要了解提供的系统的哪些点可扩展或可替换. 身份验证后端为用户模型存储的用户名和密码需要针对与Django默认不同的服务进行身份验证时提供了一个可扩展的系统. 您可以给您的模型定制可以通过Django的授权系统进行检查的权限. 您可以扩展默认的用户模型,或者替换完全自定义的模型. 其他验证来源 您可能有时需要挂接到另一个身份验证来源 -