【问题标题】:Laravel Package AuthenticationLaravel 包认证
【发布时间】:2013-02-07 04:24:18
【问题描述】:

我有一个 Laravel 4 网络应用程序,用户可以在其中登录和编辑他们的个人资料。

我创建了一个 API 包,允许用户使用他们的用户名/密码登录并获取他们个人资料的 json 转储。

现在,我不希望 API 用户使用他们的用户名/密码,而是使用数据库中另一个表中的 app_id / app_key。

如何使用 Laravel 4 实现这一点?如果我可以创建一个与Auth:attempt() 工作方式相同的 Auth 驱动程序,那就太好了,这样我就不必更改我的任何业务逻辑,但我不知道如何注入一个新的 Auth 服务提供程序在 API 包内工作。

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    您可以根据需要更改身份验证设置。您可以像这样在 filters.php 中创建一个过滤器:

    Route::filter('api_auth', function()
    {
       Config::set('auth.table', 'api_table');
       // you can even change your model
       // Config::set('auth.model', 'Apiuser');
    });
    

    并在 routes.php 中的任何路由之前使用:

    Route::get('user', array('before' => 'api_auth', function()
    {
       // some stuff
    }));
    

    这样,您就可以使用不同的设置并做您想做的事。

    顺便说一句,我在 Laravel 3 中尝试过这种方法,它奏效了。我查看了 laravel 4 的文档,我没有看到任何阻止这项工作的东西。

    【讨论】:

      猜你喜欢
      • 2020-01-24
      • 2021-03-05
      • 1970-01-01
      • 2018-04-13
      • 2017-05-08
      • 2018-01-27
      • 2021-09-10
      • 2015-07-31
      • 2021-09-11
      相关资源
      最近更新 更多