当前位置: 首页 > 知识库问答 >
问题:

使用laravel Passport中的授权码授权登录第三方应用程序无效

韦胜泫
2023-03-14

我试图使用授权代码授予登录第三方客户端在护照Oauth服务器。

Route::get('/redirect', function (Request $request) {
    $query = http_build_query([
        'client_id' => 3,
        'redirect_uri' => 'http://127.0.0.1:8001/callback',
        'response_type' => 'code',
        'scope' => '',
        'state' => \Str::random(40),
    ]);

    return redirect('http://127.0.0.1:8000/oauth/authorize?' . $query);
});

Route::get('/callback', function (Request $request) {
    $response = (new GuzzleHttp\Client)->post('http://127.0.0.1:8000/oauth/token', [
        'form_params' => [
            'grant_type' => 'authorization_code',
            'client_id' => 3, 
            'client_secret' => 'Ux6p201tRFrPQ5lLZI1RMce1GYD6qTJ9Qvj7nM2Z',
            'redirect_uri' => 'http://127.0.0.1:8001/callback',
            'code' => $request->code,
        ]
    ]);
    session()->put('token', json_decode((string)$response->getBody(), true));

    return redirect('/todos');
});

Route::get('/todos', function () {
    $response = (new GuzzleHttp\Client)->get('http://127.0.0.1:8000/api/todos', [
        'headers' => [
            'Authorization' => 'Bearer ' . session()->get('token.access_token')
        ]
    ]);

    return json_decode((string)$response->getBody(), true);
});

在oauth服务器中,我创建了id为3 secret:Ux6p201tRFrPQ5lLZI1RMce1GYD6qTJ9Qvj7nM2Z回调的客户机:'http://127.0.0.1:8001/callback'

但当我从第三方应用程序创建请求/重定向时,我得到:未经验证的401和重定向到登录,我也尝试添加

  Passport::$ignoreCsrfToken = true;

在AuthServiceProvider中。但仍然不起作用。有人能帮我吗?

共有1个答案

洪伟兆
2023-03-14

类似的问题已经在Laravel Passport github存储库中列出

要解决此错误,请在AuthServiceProvider文件中添加::

https://github.com/laravel/passport/issues/839

 类似资料:
  • 授权交互流程 获取已授权信息 参数说明: 字段 类型 必须? 说明 type ThirdAuth 是 获取第三方授权信息标识。 如:SDKThirdAuthType.QQ、SDKThirdAuthType.WX deviceTypeId String 是 设备类型 deviceId String 是 设备SN SDKThirdAuthToken 说明 字段 类型 必须? 说明 access_tok

  • YurunOAuthLogin 是一个PHP 第三方登录授权 SDK,集成了QQ、微信、微博、Github等常用接口。可以轻松嵌入支持 PHP >= 5.4 的任何系统中,2.0 版现已支持 Swoole 协程环境。 支持的登录平台 QQ、QQ 小程序 微信网页扫码、微信公众号、微信小程序 微博 百度 Github Gitee Coding 开源中国(OSChina) CSDN 后续将不断添加新的

  • 1、管理员登录企业管理平台,进入应用中心,点击进入应用市场 2、选择一个需要安装的应用,点击进入详情 3、点击安装按钮,开始授权安装 4、在弹窗中选择需要授权的成员范围,只有被授权的成员可以在客户端访问该应用 5、确定完成授权安装,可通知成员重新登录如流客户端访问应用

  • 授权交互流程 获取已授权信息 参数说明: 字段 类型 必须? 说明 type ThirdAuth 是 获取第三方授权信息标识。 如:ThirdAuth.QQ、ThirdAuth.WX、ThirdAuth.XMLY deviceTypeId String 是 设备类型 deviceId String 是 设备SN ThirdOauthToken 说明 字段 类型 必须? 说明 access_toke

  • 概述 1、用户对开发者进行应用授权后,开发者可以帮助用户完成相应的业务逻辑。 2、授权采用标准的OAuth 2.0流程。 授权流程 快速接入 第一步:应用授权URL拼装 拼接规则: http://openauth.yourdomain.com/oauth2/appToAppAuth?app_id=2019032617262200001&redirect_uri=http%3a%2f%2flocal

  • 概述 轻推提供了基于OAuth的授权登录方式,当用户在轻推客户端中访问轻应用/订阅号应用网页时,开发者可以通过轻推身份验证机制来获取用户信息,从而免去登录环节,实现自动登录。 轻应用/订阅号中的URL链接(包括消息中的链接、自定义菜单以及轻应用入口地址),均可以通过身份验证接口来获取用户的身份信息。 注意: 轻推的身份验证仅仅只提供在轻推客户端打开网页时可以获取轻推用户的身份信息,登录到其它独立的