gurinder/laravel-auth

Laravel认证系统 - 包含UI

1.0.4 2018-07-23 15:57 UTC

This package is not auto-updated.

Last update: 2024-09-15 23:00:33 UTC


README

它自带Google、Facebook、Github和Twitter(通过电子邮件和姓名登录或注册)。

安装

步骤 1

通过Composer包含

composer require gurinder/laravel-auth

步骤 2(可选)

发布视图(如有必要进行自定义),配置(可选)

// Optional
php artisan vendor:publish --tag="gauth::views"

// Optional
php artisan vendor:publish --tag="gauth::config"

步骤 3

将以下内容添加到您的用户模型模式中

Schema::create('users', function (Blueprint $table) {
    ...
    $table->boolean('email_verified')->default(false);
    $table->string('email_verification_token')->nullable();
    ...
});

步骤 4

获取您应用程序的客户端ID和密钥,并将其放入.env文件中

FACEBOOK_APP_ID=
FACEBOOK_APP_SECRET=
SOCIALITE_FACEBOOK_CALLBACK="/socialite/facebook/callback"

TWITTER_CLIENT_ID=
TWITTER_CLIENT_SECRET=
TWITTER_ACCESS_TOKEN=
TWITTER_ACCESS_SECRET=
SOCIALITE_TWITTER_CALLBACK="/socialite/twitter/callback"

GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
GOOGLE_DEVELOPER_KEY=
SOCIALITE_GOOGLE_CALLBACK="${APP_URL}/socialite/google/callback"

GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
SOCIALITE_GITHUB_CALLBACK="/socialite/github/callback"

步骤 5

将社交提供者添加到config/service.php

return [
    
    // ....
    
    'twitter' => [
        'client_id'     => env('TWITTER_CLIENT_ID'),
        'client_secret' => env('TWITTER_CLIENT_SECRET'),
        'redirect'      => env('SOCIALITE_TWITTER_CALLBACK'),
        'access_token'  => env('TWITTER_ACCESS_TOKEN'),
        'access_secret' => env('TWITTER_ACCESS_SECRET'),
    ],

    'github' => [
        'client_id'     => env('GITHUB_CLIENT_ID'),
        'client_secret' => env('GITHUB_CLIENT_SECRET'),
        'redirect'      => env('SOCIALITE_GITHUB_CALLBACK'),
    ],

    'facebook' => [
        'client_id'     => env('FACEBOOK_APP_ID'),
        'app_id'        => env('FACEBOOK_APP_ID'),
        'client_secret' => env('FACEBOOK_APP_SECRET'),
        'redirect'      => env('SOCIALITE_FACEBOOK_CALLBACK'),
    ],

    'google' => [
        'recaptcha_site_key'   => env('GOOGLE_RECAPTCHA_SITE_KEY'),
        'recaptcha_secret_key' => env('GOOGLE_RECAPTCHA_SECRET_KEY'),
        'client_id'            => env('GOOGLE_CLIENT_ID'),
        'client_secret'        => env('GOOGLE_CLIENT_SECRET'),
        'developer_key'        => env('GOOGLE_DEVELOPER_KEY'),
        'redirect'             => env('SOCIALITE_GOOGLE_CALLBACK')
    ]

];

步骤 6

配置插件:注意:请确保数据库中存在默认角色(如果您想的话,也可以使用gurinder/laravel-acl

return [
    // Open or Close Registration
    'registration_open'              => true,

    // Name fields to Register, make sure it matches with your user model
    'registration_name_fields'       => [
        // 'name'
        'first_name',
        'last_name',
    ],

    // validation rules for registeration
    // Note: Do not delete data field, its required for registration
    'registration_validateion_rules' => [
        'first_name' => 'required|string',
        'last_name'  => 'required|string',
        'email'      => 'required|string|email|max:255|unique:users',
        'password'   => 'required|string|min:6|max:255|confirmed',
        'data'       => 'string' // Do not delete this field
    ],

    // Redirect path after user is successfulle logged in
    'redirect_path_after_login' => '/login-successful',

    // Redirect path after user is successfulle reseted password
    'redirect_path_after_password_reset' => '/password-reset-done',

    // Redirect path after user registered and email confiremed via mail
    'redirect_path_after_email_confirmation' => '/email-is-confirmed',

    // User model must have a method $user->assignRole($roles)
    // in order to this works
    // And it must accept role slug, role id, roles array, role instance
    // NOTE -> make sure this role exist in database
    'default_roles'                          => ['subscriber'],

    // Email configuration to send welcome and confirmation(email) emails to user
    'email_from' => [
        'name'  => 'Gurinder Laravel Auth',
        'email' => 'noreply@example.com'
    ]

];

登录过程

  • 用户来到登录页面
  • 在填写登录表单后,用户将被重定向到redirect_path_after_login
  • 或者如果用户点击社交提供者,并且用户电子邮件已存在,那么用户也将登录并被重定向到redirect_path_after_login

注册过程

  • 用户来到注册页面
  • 在填写注册表单后,用户将收到电子邮件确认以确认电子邮件
  • 在电子邮件确认后,用户将被重定向到redirect_path_after_email_confirmation
  • 或者如果用户点击社交提供者
  • 情况 1.如果用户电子邮件已存在,则用户也将登录并被重定向到redirect_path_after_login
  • 情况 2.在社交提供者回调之后,新用户将被重定向到选择密码的视图,完成后用户将登录,电子邮件将自动验证并重定向到redirect_path_after_login

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。