【问题标题】:Laravel auth:api - use token in header instead of request bodyLaravel auth:api - 在标头中使用令牌而不是请求正文
【发布时间】:2018-03-19 10:37:36
【问题描述】:

这是我第一次创建 API,我使用的是 laravel 5.5。

我创建了一个简单的GET 端点,其中auth:api 作为唯一的中间件。

当我使用请求正文中的 API 令牌(即http://localhost/my-endpoint?api_token=123)访问端点时,它可以工作,但我不希望这样。

如何让 laravel 也接受标头中的令牌? (即Authorization: Bearer 123

编辑:

这是我的路线代码:

Route::get( '/my-endpoint', function(){
    dd( 'hello world' );
})->middleware( 'auth:api' );

【问题讨论】:

  • 传入标头时遇到的错误是什么
  • 今天我了解到,使用标准化的方法通过 HTTP 进行数据传输是丑陋且不专业的。
  • 你的问题不是很清楚。
  • @N.B. ,据我所知,REST API 不应该包含查询字符串,所有大公司都使用标头进行授权.. 但是请知道我是否错了
  • @Amarnasan 我想使用 Authorization: Bearer 标头而不是将 api_token 作为参数传递

标签: php laravel laravel-5.5


【解决方案1】:

您必须更改表以添加“api_token”字段。

Schema::create('users', function (Blueprint $table) {
    $table->increments('id');
    $table->string('name');
    $table->string('email')->unique();
    $table->string('password');
    $table->string('api_token', 60)->unique(); // Add api_token field
    $table->rememberToken();
    $table->timestamps();
});

现在,您可以在标头中使用 Bearer tokenAuthorization

https://medium.com/@sirajul.anik/laravel-api-authenticate-user-with-custom-driver-different-table-using-auth-middleware-fa2cabec2d61

【讨论】:

  • @StyleSh1t 如果有错误,您能告诉我们您的错误吗?
  • 正如我的问题中所写,我的 API 正在工作,但仅在请求中传递 api_token 字段时,而我想在标头中传递它
  • 你创建了什么路由以及在哪个文件中?您可以通过编辑第一个主题给我们更多代码吗?这里举个例子:github.com/ssi-anik/laravel-custom-auth/blob/master/routes/…
  • 编辑哪个文件添加修改用户表的代码?
【解决方案2】:

有关此api认证的详细信息,follow this stack

如果您确实能够成功地将其传递到参数中,则将其包含在标头对象中,就像您将任何其他标头一样...

axios({method: 'get', url: 'api/user', headers: {
      'Authorization': 'Bearer ' + yourToken,
    }})
    .then((response)=>{ 
      console.log(response.data)
    })

我这样说是因为 api 通常需要额外的步骤才能工作,但如果它在你的 get 参数中工作,那么你只需要这样

或者更好的是,默认为所有请求传递它

//js/main.js

axios.defaults.headers.common = {
    'X-CSRF-TOKEN': your_csrfToken,
    'X-Requested-With': 'XMLHttpRequest',
    'Authorization': 'Bearer ' + yourToken,
    
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-13
    • 2018-07-05
    • 2021-01-21
    • 2019-11-26
    • 2019-04-13
    • 2021-12-12
    • 2016-03-21
    • 2020-11-23
    相关资源
    最近更新 更多