3x1io/laravel-socialiter

自动管理任何 Laravel Socialite 提供器的用户持久化和解析。

资助包维护!
mikebronner

v1.0.0 2023-03-12 12:21 UTC

This package is auto-updated.

Last update: 2024-09-04 14:01:04 UTC


README

socialiter-masthead

支持此包

这是一个 MIT 许可的开源项目,其持续开发得益于社区的支援。如果您想支持该项目以及我们的其他包,请考虑通过上面的按钮赞助我们。

我们感谢以下赞助商的慷慨解囊,请花点时间了解一下他们

目录

要求

  • PHP 7.2+
  • Laravel 7.x
  • Socialite 4.2+

安装

  1. 安装 composer 包

    composer require genealabs/laravel-socialiter
  2. 添加社交凭证表

    php artisan migrate

    为了防止自动迁移运行(例如,如果您有不同的迁移设置,如多租户等),请将以下条目添加到您的应用程序服务提供者中

    <?php
    
    namespace App\Providers;
    
    use GeneaLabs\LaravelSocialiter\Socialiter;
    use Illuminate\Support\ServiceProvider;
    
    class AppServiceProvider extends ServiceProvider
    {
        public function register()
        {
            //
        }
    
        public function boot()
        {
            Socialiter::ignoreMigrations();
        }
    }

    然后发布迁移文件,并按需操作它们

    php artisan vendor:publish --provider="GeneaLabs\LaravelSocialiter\Providers\ServiceProvider" --tag=migrations
  3. 更新用户模型

    use GeneaLabs\LaravelSocialiter\Traits\SocialCredentials;
    
    class User extends Authenticatable {
    
        use SocialCredentials;
    
        ...
    }
    

实现

以下是一个使用“使用 Apple 登录”驱动程序示例控制器实现的示例

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use GeneaLabs\LaravelSocialiter\Socialiter;
use Illuminate\Http\RedirectResponse;
use Laravel\Socialite\Facades\Socialite;

class SignInWithAppleController extends Controller
{
    public function redirectToProvider() : RedirectResponse
    {
        // use Socialite, as before
        return Socialite::driver("sign-in-with-apple")
            ->scopes(["name", "email"])
            ->redirect();
    }

    public function handleProviderCallback()
    {
        // but handle the callback using Socialiter
        $user = (new Socialiter)
            ->driver("sign-in-with-apple")
            ->login();

        // or you can use the facade:
        $user = Socialiter::driver("sign-in-with-apple")
            ->login();

        // or you can use the app binding:
        $user = app("socialiter")
            ->driver("sign-in-with-apple")
            ->login();
    }
}

对质量的承诺

在包开发过程中,我会尽可能地采用良好的设计和开发实践,以确保该包尽可能好。我的包开发清单包括

  • ✅ 尽可能达到 100% 的代码覆盖率,使用单元测试。
  • ✅ 消除 SensioLabs Insight 和 Scrutinizer 识别的所有问题。
  • ✅ 完全符合 PSR1、PSR2 和 PSR4。
  • ✅ 包含 README.md 中的全面文档。
  • ✅ 提供符合 http://keepachangelog.com 格式的最新 CHANGELOG.md。
  • ✅ 在所有代码中没有任何 PHPMD 或 PHPCS 警告。

贡献

请遵守和尊重包含的 行为准则 的所有方面。

报告问题

在报告问题时,请尽可能完整地填写包含的模板。不完整的问题可能会被忽略或关闭,如果信息不足,无法采取行动。

提交拉取请求

请查看 贡献指南。只有符合所有标准的 PR 才会被接受。

如果您喜欢开源软件,请为使用的仓库点赞 ⭐️。

我们已将出色的 symfony/thanks composer 包作为开发依赖项包含在内。通过为您使用的包点赞,让您的操作系统包维护者知道您对他们的感激之情。只需安装此包后运行 composer thanks 即可。(不用担心,由于它是开发依赖项,它不会安装到您的实时环境中。)