Laravel Socialite 的 Steam OpenID 提供者

4.2.0 2022-03-28 22:38 UTC

This package is auto-updated.

Last update: 2024-08-26 21:41:01 UTC


README

composer require socialiteproviders/steam

安装与基本用法

请参阅基本安装指南,然后按照以下特定提供者的说明操作。

config/services.php 中添加配置

'steam' => [
  'client_id' => null,
  'client_secret' => env('STEAM_CLIENT_SECRET'),
  'redirect' => env('STEAM_REDIRECT_URI'),
  'allowed_hosts' => [
    'example.com',
  ]
],

allowed_hosts

设置此选项以防止授权域名欺骗。当用户从 Steam 登录页面返回时,除了 OpenID 验证外,还会检查返回_to 参数是否与 allowed_hosts 中的可用域名匹配。

如果您未指定此设置,则欺诈者有机会在其他人下运行应用程序

问题已在 SocialiteProviders/Providers#817 中解决

默认情况下,此保护是禁用的。它只有在允许的主机不等于空数组时才会生效。

force_https

将此属性设置为在从 Steam OAuth 重定向时强制 HTTPS 方案。

如果您未设置它,则方案将从您的服务器设置中推断。

'steam' => [
  'client_id' => null,
  'client_secret' => env('STEAM_CLIENT_SECRET'),
  'redirect' => env('STEAM_REDIRECT_URI'),
  'force_https' => true,  // This will force HTTPS scheme
  'allowed_hosts' => [
    'example.com',
  ]
],

添加提供者事件监听器

配置包的监听器以监听 SocialiteWasCalled 事件。

将事件添加到 app/Providers/EventServiceProvider 中的 listen[] 数组中。有关详细说明,请参阅基本安装指南

protected $listen = [
    \SocialiteProviders\Manager\SocialiteWasCalled::class => [
        // ... other providers
        \SocialiteProviders\Steam\SteamExtendSocialite::class.'@handle',
    ],
];

用法

现在您应该可以使用此提供者,就像您通常会使用 Socialite 一样(假设您已安装了外观)

return Socialite::driver('steam')->redirect();

返回的用户字段

  • id
  • nickname
  • name
  • avatar