genealabs/laravel-socialiter

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

10.0.0 2023-05-20 21:00 UTC

This package is auto-updated.

Last update: 2024-09-21 00:09:17 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即可。(无需担心,由于它是开发依赖项,它不会安装在你的生产环境中。)