Closed xwartz closed 7 years ago
五个步骤:(获取客户端标识符的话,跳到第3步) 1.向 manifest.json 文件中添加权限,并上传应用
manifest.json
"permissions": [ "identity" ]
上传应用 (其实本地加载正在开发的扩展程序就行了,谷歌就会产生一个密钥) 2.将上传后应用的 manifest.json 中的密钥复制到现在的 manifest.json 文件中 具体步骤:
1. 进入用户配置文件目录。在 Mac 上:`~/Library/Application\ Support/Google/Chrome/Default/Extensions` 2. 找出已安装的应用与扩展程序管理页面中的应用的标识符(ID)一致的。 3. 进入找到的应用的目录,打开 `manifest.json` 。 4. 将 `manifest.json` 中的 `"key"` 复制并粘贴到正在开发的`manifest.json` 文件中。
3.为 Chrome 应用获取 OAuth2 客户端标识符(Client ID),需要在 Google API 控制台中注册应用,获取客户端标识符:
OAuth2 客户端标识符(Client ID)
1. 使用上传应用至 Chrome 网上应用店的同一个 Google 帐户登录 Google API 控制台。 2 . Create... 菜单项,创建新的项目。 3. 创建并命名后,进入“Services”导航菜单项,打开需要的 Google 服务。 4. 进入“API Access”导航菜单项,并单击 `Create an OAuth 2.0 client ID... ` 5. 输入请求的商标信息,选择 `Installed application` 的类型。 6. 选择 Chrome Application 并输入应用标识符(在扩展程序管理页面显示的ID,我们现在这个是 `eempgbpnkjnacmilmobpbhbfpdjdcpgd`)。
4.更新 manifest.json文件,包含客户端标识符与区域(需要获取的信息)
"oauth2": { "client_id": " xxoo.apps.googleusercontent.com", "scopes": [ "https://www.googleapis.com/auth/userinfo.email" ] }
5.获取认证令牌,调用 identity.getAuthToken
identity.getAuthToken
chrome.identity.getAuthToken({ 'interactive': true }, function(token) { // 使用令牌。 });
设置 { 'interactive': true } 会弹出交互界面。
{ 'interactive': true }
1.在提供商获取客户端标识符 需要在提供商注册一个 OAuth2 客户端标识符,并将客户端标识符配置为一个网站。 Facebook 注册应用入口, 填完基本信息后,在Settings下,点击Add Platform 输入Site URI,使用这种形式的 URL:https://<扩展程序标识符>.chromiumapp.org/<此处可以是任意内容> ,如下图, PS:由于公司的应用,就打码了。 由于网页和离线应该都需要,将Site URL 保持网页的 https://www.xxoo.com (保持上图的也可以) 并且在Advanced中的Valid OAuth redirect URIs 添加 https://eempgbpnkjnacmilmobpbhbfpdjdcpgd.chromiumapp.org/xxoo和https://www.xxoo.com。 2.添加您的应用需要访问的提供商资源的权限 为了向服务提供商 API 端点发出跨来源XHR,您需要在权限中将合适的匹配表达式加入白名单:
OAuth2
URL:https://<扩展程序标识符>.chromiumapp.org/<此处可以是任意内容>
https://www.xxoo.com
https://eempgbpnkjnacmilmobpbhbfpdjdcpgd.chromiumapp.org/xxoo
"permissions": [ ... "https://www.facebook.com/*" ]
3.获取认证令牌, 接口函数launchWebAuthFlow.
launchWebAuthFlow
chrome.identity.launchWebAuthFlow( {'url': '<进行认证的 URL<', 'interactive': true}, function(redirect_url) { /* 从 redirect_url 提取令牌 */ });
<进行认证的 URL> 是网站向提供商进行认证的任何 URL。
<进行认证的 URL> 是网站向提供商进行认证的任何 URL
例如,你正在与Facebook进行 OAuth2 流程,以客户端标识符 1601920653366811 注册了应用,希望访问Facebook上的用户邮箱:
"https://www.facebook.com/dialog/oauth?client_id=1601920653366811&redirect_uri=https://eempgbpnkjnacmilmobpbhbfpdjdcpgd.chromiumapp.org/ticktick&response_type=token&scope=email"
参考 https://developer.chrome.com/apps/app_identity
Google账户认证:
五个步骤:(获取客户端标识符的话,跳到第3步) 1.向
manifest.json
文件中添加权限,并上传应用上传应用 (其实本地加载正在开发的扩展程序就行了,谷歌就会产生一个密钥) 2.将上传后应用的
manifest.json
中的密钥复制到现在的manifest.json
文件中 具体步骤:3.为 Chrome 应用获取
OAuth2 客户端标识符(Client ID)
,需要在 Google API 控制台中注册应用,获取客户端标识符:4.更新
manifest.json
文件,包含客户端标识符与区域(需要获取的信息)5.获取认证令牌,调用
identity.getAuthToken
设置
{ 'interactive': true }
会弹出交互界面。非 Google 帐户认证(以Facebook为例)
1.在提供商获取客户端标识符 需要在提供商注册一个
OAuth2
客户端标识符,并将客户端标识符配置为一个网站。 Facebook 注册应用入口, 填完基本信息后,在Settings下,点击Add Platform 输入Site URI,使用这种形式的URL:https://<扩展程序标识符>.chromiumapp.org/<此处可以是任意内容>
,如下图,PS:由于公司的应用,就打码了。 由于网页和离线应该都需要,将Site URL 保持网页的
https://www.xxoo.com
(保持上图的也可以) 并且在Advanced中的Valid OAuth redirect URIs 添加https://eempgbpnkjnacmilmobpbhbfpdjdcpgd.chromiumapp.org/xxoo
和https://www.xxoo.com
。 2.添加您的应用需要访问的提供商资源的权限 为了向服务提供商 API 端点发出跨来源XHR,您需要在权限中将合适的匹配表达式加入白名单:3.获取认证令牌, 接口函数
launchWebAuthFlow
.<进行认证的 URL> 是网站向提供商进行认证的任何 URL
。例如,你正在与Facebook进行 OAuth2 流程,以客户端标识符 1601920653366811 注册了应用,希望访问Facebook上的用户邮箱:
"https://www.facebook.com/dialog/oauth?client_id=1601920653366811&redirect_uri=https://eempgbpnkjnacmilmobpbhbfpdjdcpgd.chromiumapp.org/ticktick&response_type=token&scope=email"
参考 https://developer.chrome.com/apps/app_identity