【问题标题】:laravel custom authentication based on API response calllaravel 基于 API 响应调用的自定义认证
【发布时间】:2019-06-25 16:56:02
【问题描述】:

目前我使用 Laravel 5.7 并尝试构建登录机制。类似Custom user authentication base on the response of an API call的情况。

我的情况是我在本地没有自己的数据库和用户表。只需调用 API 通过传递用户名、密码、客户端 ID、客户端密码进行验证。

我对邮递员 API 的请求:

POST Body   
{
  "username": "tester",
  "password": "ps",
  "CLIENT_ID": "xx",
  "CLIENT_SECRET": "yy"
}

API 对 postman 中成功事件的响应。用户信息通过解码在这个 JWT 令牌中。

{
    "token_type": "Bearer",
    "id_token": "eyJraWQiOiNGUvdFZC...",
    "access_token": "eyJraWQiOi....",
    "expire_in": 3600,
    "refresh_token": "eyJjdHkiOiJK..."
}

我希望在 loginContoller 中执行类似操作并使用 Auth::**:

public function postSignIn(Request $request)
{
    $username = strtolower($request->username);
    $password = $request->password;

    if (Auth::attempt(['username' => $username, 'password' => $password])) {
        return Redirect::to('/dashboard')->with('success', 'Hi '. $username .'! You have been successfully logged in.');
    } else {
        return Redirect::to('/')->with('error', 'Username/Password Wrong')->withInput(Request::except('password'))->with('username', $username);
    }
}

问题:

  1. 如何在 laravel 中实现 API 认证? (使用 guzzle、服务提供者、Authenticatable Contract 和驱动 Auth?)

  2. 如何将访问令牌存储在 session/cookie 中,以便在以后每次发送到 API 的每个请求中附加?

  3. 刷新令牌失效后如何存储,获取访问令牌?

感谢所有帮助或任何示例/指导。

【问题讨论】:

  • 嗨,尝试使用“护照”-> laravel.com/docs/5.7/passport ...
  • @EhsanKeramat 嗨,但我没有在这个 laravel 应用程序中实现 API。它只是一个瘦客户端 Web 应用程序。据我了解,护照使用api身份验证并建立在oauth2服务器之上。
  • 嗨,看,如果你想在你的网络、应用程序等中使用身份验证...你必须有数据库访问权限、身份验证控制器代码,所以我们使用 laravel 来减少我们的代码并使用稳定的插件更高的安全性和性能,如果您想在您的应用程序中使用身份验证,您必须使用之前测试和使用过的插件,如“护照”或构建您自己的!为了构建您的韩元,请阅读如何处理令牌、用户名、密码、安全性、性能等...在数据库中设置令牌并比较检查用户值!!! (例如去阅读如何构建自己的护照处理)...
  • @JohnnyCc 你找到解决这个问题的方法了吗?我也有同样的问题
  • 我遇到了类似的问题。该场景是使用 C# 输出 json(承载令牌、用户数据)的 API。前端使用 Laravel。看起来很困难,使用 laravel 构建前端但基于 API 响应调用进行身份验证。正如@JohnnyCc 所说,Laravel 没有实现 API(护照),而是作为前端。

标签: php laravel api authentication oauth-2.0


【解决方案1】:

您不必自己动手,有很多插件可以为您解决问题,就像 lavael 护照一样,使用起来非常简单,您必须看看

【讨论】:

    猜你喜欢
    • 2016-01-24
    • 2018-06-17
    • 1970-01-01
    • 2023-04-07
    • 2020-11-14
    • 1970-01-01
    • 2017-11-01
    • 2020-12-18
    • 2019-07-09
    相关资源
    最近更新 更多