【问题标题】:Basic authentication in LumenLumen 中的基本身份验证
【发布时间】:2017-06-01 07:33:05
【问题描述】:

我已经使用 Laravel 编写了一个用于检查身份验证的 API 调用。我需要将该控制器移至 Lumen 以将其用作微服务。

这是我在 Laravel 中的控制器。

public function byCredantial(Request $request)
{
    $user = [
        'email' => $request->input('email'),
        'password' => $request->input('password')
    ];

    if (Auth::attempt($user)) {
        $response = $this->getSuccess(Auth::user()->id);

        return response()->json($response, 200);
    } else {
        $response = $this->getError($user);

        return response()->json($response, 401);
    }
}

Lumen 文档未提供如何进行此类身份验证。它们没有检查凭据是否正确的功能。我怎么能在流明中做到这一点。这可能吗?

【问题讨论】:

    标签: authentication lumen


    【解决方案1】:

    您可以在 Lumen 中执行此操作。 Facades 默认是禁用的(如果你想启用它,你可以查看documentation 中的说明),但我不建议启用 Facades,因为这会给你的应用程序增加额外的开销。相反,我会修改你的函数来调用app('auth')。这将返回 Auth 外观代理的类,而不加载所有其他外观。

    public function byCredantial(Request $request)
    {
        $user = [
            'email' => $request->input('email'),
            'password' => $request->input('password')
        ];
    
        $auth = app('auth');
    
        if ($auth->attempt($user)) {
            $response = $this->getSuccess($auth->user()->id);
    
            return response()->json($response, 200);
        } else {
            $response = $this->getError($user);
    
            return response()->json($response, 401);
        }
    }
    

    另外,我建议阅读身份验证documentation 并将大部分代码放在AuthServiceProvider 中。

    【讨论】:

      猜你喜欢
      • 2017-10-18
      • 1970-01-01
      • 2016-03-30
      • 2017-09-11
      • 2017-06-14
      • 2021-06-20
      • 2011-01-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多