首页 > 后端开发 > php教程 > 通过社交名录轻松地在您的应用中添加社交登录

通过社交名录轻松地在您的应用中添加社交登录

Christopher Nolan
发布: 2025-02-10 16:22:13
原创
459 人浏览过

laravel colecition:简化Laravel应用程序中的社会身份验证

本文,由Wern Ancheta和其他SitePoint审稿人进行的同行评审,探索Laravel Socialite,简化社交认证的软件包。

Easily Add Social Logins to Your App with Socialite

Socialite直接支持Google,Facebook,Twitter,LinkedIn,Github和Bitbucket。 尽管没有计划进一步的官方提供者,但社区驱动的社交名流提供商项目提供了许多非官方的扩展。

本教程假设了一个有效的Laravel应用程序。 建议改进宅基地,以实现强大的开发环境。

密钥概念:

    laravel社会名称摘要复杂的社会登录身份验证。
  • >它支持主要的Oauth提供商,并提供社区提供的扩展。
  • >配置涉及在每个社交平台上注册您的应用程序以获取凭据并更新
  • config/services.php>数据库架构调整(例如,通过发送电子邮件和密码无效)是必要的。
  • >
  • 自定义提供商扩展了不支持平台的Socialite功能。
  • >
  • >教程演示了GitHub社交登录,包括OAUTH回调和用户身份验证更新。
  • 基于标准表格的身份验证:

> >在整合社交登录之前,请设置Laravel的基于默认表格的身份验证:

导航到
php artisan make:auth
php artisan migrate
登录后复制
登录后复制
>应显示功能登录页面。

> /login

Easily Add Social Logins to Your App with Socialite

>用社交名称添加社交身份验证:

使用作曲家安装社交名称:

注册服务提供商和
composer require laravel/socialite
登录后复制
的立面:

config/app.php

> Socialite是一种懒惰的单例服务。>
'providers' => [
    // ...
    Laravel\Socialite\SocialiteServiceProvider::class,
],

'aliases' => [
    // ...
    'Socialite' => Laravel\Socialite\Facades\Socialite::class,
],
登录后复制

> configuration:

>在每个所需平台上注册一个OAUTH应用程序,以获取客户端ID和秘密密钥。 将这些凭据添加到>:

>

config/services.php>将实际键值存储在您的

文件中。
'facebook' => [
    'client_id'     => env('FB_CLIENT_ID'),
    'client_secret' => env('FB_CLIENT_SECRET'),
    'redirect'      => env('FB_URL'),
],
// ...similar entries for other providers...
登录后复制

.env数据库修改:

要容纳社交登录,请修改表格架构以允许无效的电子邮件和密码字段。 安装

users创建一个迁移:doctrine/dbal

composer require doctrine/dbal
登录后复制
>更新迁移文件(

)以使

php artisan make:migration prepare_users_table_for_social_authentication --table users
登录后复制

nullable。 database/migrations/...>为链接的社交帐户创建模型和迁移:此迁移应包括email>,password和一个唯一的

>。 运行

LinkedSocialAccount

模型:

在两个模型中定义>>>之间的一对多关系。 在User>中进行LinkedSocialAccountprovider_name质量分配 provider_idLinkedSocialAccount控制器:

>

方法创建

SocialAccountController重定向到OAuth提供商。 redirectToProvider>处理回调,使用A handleProviderCallback助手类查找或创建用户并链接社交帐户。redirectToProvider handleProviderCallbackSocialAccountsService socialAccountsService助手类:

此类的>检查现有链接帐户或创建新用户和链接的方法。

路由:findOrCreate

>

添加社交登录的路线,以重定向和回调:>

routes/web.php> github登录示例:

php artisan make:auth
php artisan migrate
登录后复制
登录后复制

注册一个GitHub Oauth应用程序,获取凭据,然后将其添加到>和>中。在您的登录视图中添加github登录链接。

config/services.php .env

Easily Add Social Logins to Your App with Socialite >社交名流提供者项目:> Easily Add Social Logins to Your App with Socialite >社交名流提供者项目为许多非正式提供者提供。 用社交名流提供商的服务提供商替换Laravel的社交名流服务提供商。 注册每个提供商的事件侦听器,Easily Add Social Logins to Your App with Socialite

> Spotify登录示例:

>使用Composer安装Spotify提供商,在Spotify的开发人员平台上注册该应用程序,将凭据添加到

>,然后将Spotify登录链接添加到您的视图中。 config/app.phpapp/Providers/EventServiceProvider.php

创建自定义提供者:

>创建一个提供者类扩展.env和一个事件侦听器进行注册。 请参阅原始文章中的Deezer提供商示例。

完整的代码可在GitHub上找到。 这篇文章以常见问题解答涵盖安装,配置,错误处理,安全性和测试。

以上是通过社交名录轻松地在您的应用中添加社交登录的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板