如何使用 Chrome 扩展程序获取 Laravel 护照令牌?
Posted
技术标签:
【中文标题】如何使用 Chrome 扩展程序获取 Laravel 护照令牌?【英文标题】:How to use Chrome extension get Laravel passport token? 【发布时间】:2019-11-29 18:48:51 【问题描述】:我正在使用 Chrome 扩展访问 Laravel 护照 API。目前,Laravel 护照 API 已设置并正在运行。我尝试使用chrome.identity.launchWebAuthFlow
获取护照令牌但无法正常工作。 Google提供了一个例子,和我的用例不一样。
我有两个问题:
根据Laravel的document,第一步是request an authorization code
,API端点是/oauth/authorize
。 redirect_uri
应该是什么,因为它是 chrome 扩展而不是网站?
用户批准请求后,我使用chrome.identity.launchWebAuthFlow
从 Passport 获取访问令牌。在 laravel 中它是一个 POST 请求,终点是/oauth/token
。但是我试过chrome.identity.launchWebAuthFlow
,是GET请求。
我可以使整个过程使用 php 而不是 Chrome 扩展。有什么建议吗?
【问题讨论】:
【参考方案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
。感谢您的提问。以上是关于如何使用 Chrome 扩展程序获取 Laravel 护照令牌?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 chrome 扩展程序中获取选项卡通知,以便扩展程序可以在每次新通知到达时显示桌面警报
在 chrome 扩展中,如何从当前 chrome 用户以外的 gmail 用户获取访问令牌?