具有正常设计的 Passport Laravel Rest API Auth
Posted
技术标签:
【中文标题】具有正常设计的 Passport Laravel Rest API Auth【英文标题】:Passport Laravel Rest API Auth With Normal Design 【发布时间】:2018-08-05 03:18:11 【问题描述】:我已经完全分配了 Passport REST API,我获得了令牌并在 PostMan 上进行了测试
它使用这个 Auth 检索数据
这是带有 laravel 刀片视图的普通 js html(不是 VUE.JS)
<script>
$.ajax(
method: 'POST',
dataType: 'json',
url: "**********/api/User/GetPost",
headers:
'Authorization':'Bearer Tokenblablabla',
'Content-Type':'application/json'
,
data: null,
success: function(data)
console.log('succes: '+data);
);
这是控制器功能
public function GetPosts(Request $request)
$data3="Test"
return response()->json([
'Success'=> true,
'Message'=>'8',
'Data' => $data3,
], 200);
这是 api.php // 这将返回一个带有帖子详细信息的 json
Route::group(['middleware'=>'auth:api'],function()
Route::post('/GetPosts','Wall\PostsController@GetPosts');
);
这是 web.php
Route::get('/GetPost', function ()
return view('getpostview');
)->middleware('auth:api');
我很困惑,我无法发送身份验证,除了我无法从 API iam 检索 json 3 天陷入这个问题 我需要什么将普通的 laravel 刀片连接到另一个 laravel 护照 REST API
【问题讨论】:
【参考方案1】:Laravel 生成的用于身份验证的 Blade 模板可以与 Laravel Passport、JWT 等配合使用。
您需要做的是正确配置Passport。
别忘了修改APIconfig/auth.php
文件中指定的驱动:
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'passport',
'provider' => 'users',
],
],
此外,要检索 json 响应在您的请求中添加此标头:
“接受”:“应用程序/json”
所以你的请求应该是这样的:
$response = $client->request('GET', 'some-url/api/getPosts', [
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Bearer '.$accessToken,
],
]);
旁注
我鼓励您阅读this presentation, "Teaching a Dog to REST",以正确使用 HTTP 动词和良好实践来创建一个干净、直观且易于学习的 API。
【讨论】:
你没有得到我想要的我使用我自己为移动设备做的 API 然后添加更多细节,我在任何地方都看不到两个 Laravel 项目以上是关于具有正常设计的 Passport Laravel Rest API Auth的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 8/Passport/GuzzleHttp APO 返回 200 OK 但没有正文响应
Laravel Passport 和 Angular 在 api/login 路线上给了我未经授权但在邮递员上工作正常?