gpt4 book ai didi

laravel-5.3 - Laravel 5.3 Passport JWT 认证

转载 作者:行者123 更新时间:2023-12-03 11:22:49 24 4
gpt4 key购买 nike

早些时候我在使用 laravel 5.2 时,我使用了第三方包 https://github.com/tymondesigns/jwt-auth/用于进行基于 JWT 的身份验证。我们只需要传递用户名和密码即可获得 token 。

现在在 laravel 5.3 中引入了护照,我想进行基于 JWT 的身份验证,但护照要求我指定 client_id 和 client_secret 以及用户名和密码。这在 tymondesigns/jwt-auth 中没有。

如果我在没有 client_id 的情况下发出请求,则会引发错误 http://pix.toile-libre.org/upload/original/1482908288.png但是当我通过 client_id 和 client_secret 时它工作正常 http://pix.toile-libre.org/upload/original/1482908143.png

如何仅使用用户名和密码而不指定 client_id 和 client_secret 在 laravel 5.3 和护照中发出 JWT 请求。

最佳答案

所以,最后我要回答我自己的问题。希望这会帮助面临类似问题的人。

JWT 认证可以使用 Laravel 5.3 护照完成,只需按照以下步骤操作:

  • 按照此链接中的说明正常安装 Passport https://laravel.com/docs/master/passport#installation

  • 或按照以下步骤操作:
  • Composer 需要 Laravel/passport
  • 添加 Laravel\Passport\PassportServiceProvider::class,给您的应用程序提供商
  • php 工匠迁移
  • php工匠护照:安装
  • 添加 HasApiTokens您的用户模型的特征
  • 护照::路线();在 AppServiceProvider
  • 配置api驱动到passport

  • 完成后,创建一个 UserController 并在其中添加以下方法:
    public function auth(Request $request)
    {

    $params = $request->only('email', 'password');

    $username = $params['email'];
    $password = $params['password'];

    if(\Auth::attempt(['email' => $username, 'password' => $password])){
    return \Auth::user()->createToken('my_user', []);
    }

    return response()->json(['error' => 'Invalid username or Password']);
    }

    public function index(Request $request)
    {
    return $request->user();
    }

    在 routes/api.php 中,添加以下路由:
    Route::post('auth', 'UserController@auth');

    Route::group(['middleware' => 'auth:api'], function(){

    Route::resource('user', 'UserController@index');

    });

    现在向 http://localhost:8000/auth 发出 POST 请求使用屏幕截图中显示的电子邮件地址和密码( http://pix.toile-libre.org/upload/original/1483094937.png )这将为您提供 访问 token ,您可以使用此 token 通过 Authorization 在您的应用程序中发出其他请求标题和 Bearer XXX其中 xxx 是 访问 token 您收到来自 /api/auth 端点。

    现在,向 /api/user 发出 GET 请求与 Authorization header 和 token 值,这将返回经过身份验证的用户的详细信息。
    (例如: http://pix.toile-libre.org/upload/original/1483095018.png)

    我还在我的博客上发布了这些步骤 http://chatterjee.pw/larvel-passport-jwt-authentication/

    我希望这有帮助!

    关于laravel-5.3 - Laravel 5.3 Passport JWT 认证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41376928/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com