Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel JWT-使用Javascript使用自己的API_Php_Laravel_Jwt - Fatal编程技术网

Php Laravel JWT-使用Javascript使用自己的API

Php Laravel JWT-使用Javascript使用自己的API,php,laravel,jwt,Php,Laravel,Jwt,我正在使用Laravel5.6进行API身份验证。其背后的理念很简单: 您发送一个带有用户凭据的HTTP POST请求,如果成功,您将获得一个“访问令牌” 每个后续请求都应发送标题“Authorization:Bearer{access_token}” 如果消费者来自外部(例如Android应用程序),则这些步骤既酷又灵活 但是如果API使用者是我自己的JavaScript?在启动每个异步请求时,即使已经知道web中间件中经过身份验证的用户,我也应该登录吗?人们通常是如何处理这个问题的 通过Pa

我正在使用Laravel5.6进行API身份验证。其背后的理念很简单:

  • 您发送一个带有用户凭据的HTTP POST请求,如果成功,您将获得一个“访问令牌”
  • 每个后续请求都应发送标题“Authorization:Bearer{access_token}”
  • 如果消费者来自外部(例如Android应用程序),则这些步骤既酷又灵活

    但是如果API使用者是我自己的JavaScript?在启动每个异步请求时,即使已经知道web中间件中经过身份验证的用户,我也应该登录吗?人们通常是如何处理这个问题的

    通过Passport(OAuth2.0),Laravel提供了一个中间件,该中间件使用授权令牌注入cookie,使此过程自动化且简单:

    通常,如果您希望使用JavaScript应用程序中的API,则需要手动向应用程序发送访问令牌,并将其与每个请求一起传递给应用程序。但是,Passport包含一个中间件,可以为您处理此问题。您只需将
    CreateFreshApiToken
    中间件添加到
    app/Http/Kernel.php
    文件中的web中间件组:


    如何使用JWT(tymondesigns/JWT auth)并在不显式传递访问令牌的情况下向我自己的应用程序的API发出请求?

    如果要通过基于Javascript的网站访问此API,需要将此访问令牌保存在本地存储中。然后,对于每个请求,将该访问令牌发送到API以检查该令牌的有效性


    此外,若你们的API和基于Javascript的网站在同一个域中,只需使用常规的方式进行身份验证

    如果不是访问令牌,您将传递什么?不清楚你是如何认证的。另外,使用OAuth 2.0/OpenID Connect进行授权/身份验证使得通过移动应用程序、JS应用程序等使用API变得很简单,因为它总是一样的——传递访问令牌,任务完成。老实说,我一点也不确定出了什么问题。
    'web' => [
        // Other middleware...
        \Laravel\Passport\Http\Middleware\CreateFreshApiToken::class,
    ],