【问题标题】:How to use Chrome extension get Laravel passport token?如何使用 Chrome 扩展程序获取 Laravel 护照令牌?
【发布时间】:2019-11-29 18:48:51
【问题描述】:

我正在使用 Chrome 扩展访问 Laravel 护照 API。目前,Laravel 护照 API 已设置并正在运行。我尝试使用chrome.identity.launchWebAuthFlow 获取护照令牌但无法正常工作。 Google提供了一个例子,和我的用例不一样。

我有两个问题:

  1. 根据Laravel的document,第一步是request an authorization code,API端点是/oauth/authorizeredirect_uri 应该是什么,因为它是 chrome 扩展而不是网站?

  2. 用户批准请求后,我使用chrome.identity.launchWebAuthFlow 从 Passport 获取访问令牌。在 laravel 中它是一个 POST 请求,终点是/oauth/token。但是我试过chrome.identity.launchWebAuthFlow,是GET请求。

我可以使整个过程使用 PHP 而不是 Chrome 扩展。有什么建议吗?

【问题讨论】:

    标签: javascript laravel google-chrome-extension oauth-2.0


    【解决方案1】:

    根据launchWebAuthFlow 文档:

    当提供者重定向到与https://app-id.chromiumapp.org/* 模式匹配的 URL 时,窗口将关闭,并将最终的重定向 URL 传递给回调函数。

    例如,您可以使用以下代码:

    let redirectUrl = chrome.identity.getRedirectURL('redirect');
    
    chrome.identity.launchWebAuthFlow({
        url: `https://my.app.domain.com/oauth/authorize?client_id=xxx&response_type=code&scope=&redirect_uri=${redirectUrl}`
    }, (redirectUrl) => {
        console.log(redirectUrl) // Redirect URL with oauth query params added
    })
    

    【讨论】:

    • 我尝试并生成了redirectUrl。但是回调函数中的重定向 URL 仍然是未定义的。
    • 我更改了laravel表oauth_clients中的重定向url,现在我可以得到授权码了。它不是访问令牌。如何获得令牌?
    • 查看 laravel 文档的 Converting Authorization Codes To Access Tokens 部分:laravel.com/docs/master/passport#requesting-tokens
    • 是的,它现在正在工作。我正在使用另一个 POST 请求来获取Access Token。感谢您的提问。
    猜你喜欢
    • 1970-01-01
    • 2023-04-03
    • 2020-12-18
    • 1970-01-01
    • 2019-05-15
    • 2020-01-14
    • 1970-01-01
    • 2021-05-03
    • 2021-12-03
    相关资源
    最近更新 更多