that0n3guy/anvard

Laravel 4 混合认证社交登录包

dev-master 2014-06-27 18:56 UTC

This package is not auto-updated.

Last update: 2024-09-24 06:51:47 UTC


README

要求

  • Laravel 4.1.x
  • 迁移的数据库设置
  • 一个 "User" 模型(您可以在配置中设置不同的名称)
  • 在深入之前,您已经阅读了配置的注意事项 :)

安装

  1. 将依赖项添加到您的 composer.json 文件中:"atticmedia/anvard": "dev-master"
  2. 运行 php composer.phar installcomposer update
  3. 'Atticmedia\Anvard\AnvardServiceProvider', 添加到您的 config/app.php 文件中
  4. 发布包配置 php artisan config:publish atticmedia/anvard
  5. 将服务凭证添加到 app/config/packages/atticmedia/anvard/hybridauth.php
  6. 检查 app/config/packages/atticmedia/anvard/db.php 文件以查看是否需要自定义任何内容(有关帮助,请参阅下方的配置
  7. 运行迁移 php artisan migrate --package=atticmedia/anvard
  8. 创建 Profile 模型(如果更改了配置,请使用不同的名称)
  9. 设置用户可以拥有多个配置文件

     public function profiles() {
         return $this->hasMany('Profile');
     }
    
  1. 设置配置文件属于用户,并具有可填充的某些字段

     class Profile extends Eloquent  {
    
         protected $fillable = array('provider', 'user_id');
    
         public function user() {
             return $this->belongsTo('User');
         }
     }
    
    
    

如果您遇到有关 hybridauth 的 composer 错误,您可能需要执行以下操作之一

选项 1: 您可能需要将以下内容添加到 composer 中

"minimum-stability": "dev",
"prefer-stable": true

选项 2: 您可以在 composer.json 中添加 "hybridauth/hybridauth": "2.*@dev" 而不是上述步骤,如果您不想更改您整个项目的最小稳定性(这是我做的)。

配置

Anvard 随带提供几个配置文件,您必须至少编辑其中一个。

在您运行 Anvard 之前,您需要将包配置文件发布到自己的应用中 - 您可以使用 artisan 轻松地完成此操作

php artisan config:publish atticmedia/anvard

然后您将在 app/config/packages 目录中找到配置文件。

hybridauth.php

首先,请将所有服务凭证(从 Facebook、LinkedIn 等获得的 app id 和 app secret)放入其中。

这是几乎与 HybridAuth 库本身使用的配置完全相同的配置,因此请参阅其文档以获取更多信息。

唯一的例外是 "base_url",Anvard 根据配置使用的路由指定。

db.php

此文件指定与数据库和模型相关的所有内容。Anvard 预期您有一个用户表,并且它将使用迁移为您创建一个配置文件表。

注意,您应该在运行迁移之前编辑此文件,因为迁移本身读取此配置。

希望该文件中的大多数值都是自解释的,例外的是 "profiletousermap"、"userrules" 和 "uservalues" 键。

profilestousersmap

当从社交登录创建新用户时使用此功能。一个相当常见的场景是您将一些属性映射到配置文件上,但您可能希望将它们直接保留在用户模型中以简化处理未使用此方法注册的用户的生活。

指定此内容将映射配置文件字段到新创建的用户。

键是来自配置文件(它反映了原始的 HybridAuth 适配器)的属性名称,值是用户模型上的属性名称。

userrules

如果您正在使用 Ardent 来自动验证模型(如果验证失败,则阻止它们被保存),那么在创建新用户时,您可能想要在这里指定一组覆盖规则。

例如,我们为Anvard创建的用户没有密码,所以您可以在那里禁用确认要求。

uservalues

这与profiletousermap类似,但更加灵活。您可以为新用户(例如,所有“客户”的“role_id”)的特定属性指定特定值,甚至提供回调函数来运行——回调函数将传入新的(未保存的)用户和原始HybridAuth适配器配置的值。

views.php

Anvard提供了一套非常简单的视图。更改此设置以指定您自己的视图。

路由

请参阅routes.php配置文件以修改默认路由。