Laravel Socialite 的 Steam OpenID 提供者

1.0 2024-06-09 16:49 UTC

This package is auto-updated.

Last update: 2024-09-09 17:27:57 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 一样使用此提供者(假设您已安装了 facade)

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

返回的用户字段

  • id
  • 昵称
  • 名字
  • 头像