mathieutu/lvconnect-socialite

LVConnect OAuth2 Provider for Laravel Socialite

v1.1.2 2020-03-04 23:44 UTC

README

摘要

LVConnect 是一个旨在通过基于 OAuth2 的认证服务统一所有 Linkvalue 应用程序登录的项目。

Linkvalue 是一家法国的 Web/移动代理机构。

Socialite 是 Laravel 中使用 OAuth 提供商认证用户的简单便捷方式。

此包是一个内部工具。您可以下载它并用作制作自己的示例,但如果您不是 Linkvalue 合作伙伴,则无法使用。

安装

此操作假定您已全局安装了 composer

composer require mathieutu/lvconnect-socialite

配置设置

您需要向服务配置文件中添加一个条目,以便在配置文件缓存在生产环境使用之前(Laravel 命令 artisan config:cache)所有配置仍然可用。

添加到 config/services.php

 'lvconnect' => [
    'client_id' => env('LVCONNECT_ID'),
    'client_secret' => env('LVCONNECT_SECRET'),
    'redirect' => env('LVCONNECT_CALLBACK'),
],

如果您想使用与生产环境不同的 URL 进行测试,可以可选地添加一个带有基本 URL 的 url 键

    'url' => 'https://lvconnect-staging.herokuapp.com',

填写您的 .env / 环境变量

创建您的应用程序 在 LVConnect 网站上,并在您的 env 中填写信息

LVCONNECT_ID=XXXX
LVCONNECT_SECRET=XXXX
LVCONNECT_CALLBACK=http://my-full-website-url.localhost/login/callback

用法

请参阅 Laravel 文档 了解 socialite 的使用。

  • 现在您应该能够像通常使用 Socialite 一样使用它。
return $socialite->driver('lvconnect')->redirect();

您可以使用以下命令发布所有 认证脚手架

php artisan lvconnect:publish

无状态

您可以设置是否希望将提供者作为无状态使用。LVConnect 支持您选择的任何选项。

注意:如果您与 Lumen 一起使用此工具,所有提供者都将自动设置为无状态,因为 Lumen 不跟踪状态。

// to turn off stateless
return Socialite::with('lvconnect')->stateless(false)->redirect();

// to use stateless
return Socialite::with('lvconnect')->stateless()->redirect();

LVConnect 用户。

socialite 将提供的用户具有以下形状

User {#341 ▼
  +accessTokenResponseBody: array:6 [▼
    "access_token" => "0bc47e47-1e88-4d08-a402-1cd7c235de3d"
    "token_type" => "bearer"
    "expires_in" => 172800
    "refresh_token" => "73a17012-b999-4300-8d4d-99e8675abc08"
    "scope" => array:3 [▼
      0 => "users:get"
      1 => "users:modify"
      2 => "profile:get"
    ]
    "need_password_change" => false
  ]
  +token: "0bc47e47-1e88-4d08-a402-1cd7c235de3d"
  +refreshToken: "73a17012-b999-4300-8d4d-99e8675abc08"
  +expiresIn: 172800
  +id: "589ae9cfe2eb1d0009790659"
  +nickname: null
  +name: "Foo BAR"
  +email: "foo.bar@link-value.fr"
  +avatar: "https://www.gravatar.com/avatar/d5763d35fe855464633ff3ec5064ecad?s=200"
  +user: array:10 [▼
    "tags" => []
    "roles" => array:5 [▼
      0 => "tech"
      1 => "business"
      2 => "hr"
      3 => "board"
      4 => "com"
    ]
    "firstName" => "Foo"
    "lastName" => "BAR"
    "email" => "foo.bar@link-value.fr"
    "createdAt" => "2017-02-08T09:50:07.813Z"
    "city" => "Lyon"
    "description" => "A really good friend!"
    "profilePictureUrl" => "https://www.gravatar.com/avatar/d5763d35fe855464633ff3ec5064ecad?s=200"
    "id" => "589ae9cfe2eb1d0009790659"
  ]
}

它是 \Laravel\Socialite\Two\User 类的实例。

参考

许可证

此 LVConnect Socialite 包是一个开源软件,许可协议为 MIT 许可。

贡献

问题和 PR 明显受到欢迎和鼓励,无论是功能还是文档。