mathieutu / lvconnect-socialite
LVConnect OAuth2 Provider for Laravel Socialite
Requires
- php: >= 7.1
- ext-json: *
- illuminate/console: ~5.7|^6.0|^7.0
- socialiteproviders/manager: ^3.3
This package is auto-updated.
Last update: 2024-09-29 05:08:04 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 明显受到欢迎和鼓励,无论是功能还是文档。