处理来自 Electron (或其他桌面平台)的 oauth2 重定向

2024-04-20

这主要是缺乏对 oauth2 的理解,并且可能不是特定于 Electron 的,但是我试图理解某人如何处理来自桌面平台(如 Electron)的 oauth2 重定向 url?

假设应用程序中没有 Web 服务设置,桌面应用程序如何提示用户输入第三方 oauth2 服务的凭据,然后正确验证它们?


Electron JS 在您的本地主机上运行一个浏览器实例。因此,您可以通过提供 https:localhost/whatever/path/you/want 的回调 url 来处理 oauth2 重定向 url。只要确保在您使用的任何服务的 oauth2 应用程序注册页面上将其列入白名单即可。

例子:

var authWindow = new BrowserWindow({
    width: 800, 
    height: 600, 
    show: false, 
    'node-integration': false,
    'web-security': false
});
// This is just an example url - follow the guide for whatever service you are using
var authUrl = 'https://SOMEAPI.com/authorize?{client_secret}....'

authWindow.loadURL(authUrl);
authWindow.show();
// 'will-navigate' is an event emitted when the window.location changes
// newUrl should contain the tokens you need
authWindow.webContents.on('will-navigate', function (event, newUrl) {
    console.log(newUrl);
    // More complex code to handle tokens goes here
});

authWindow.on('closed', function() {
    authWindow = null;
});

很多灵感都来自于这个页面:http://manos.im/blog/electron-oauth-with-github/ http://manos.im/blog/electron-oauth-with-github/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

处理来自 Electron (或其他桌面平台)的 oauth2 重定向 的相关文章

随机推荐

  • Java有using语句吗?

    Java有没有可以在hibernate中打开会话时使用的using语句 在 C 中 它类似于 using var session new Session 因此该对象超出范围并自动关闭 Java 7 推出自动资源块管理 http www in
  • 如何在 fs2 中“拆分”流?

    我想做这样的事情 def splitStream F A stream fs2 Stream F A split A gt B Stream F A Stream F B stream stream map split 但这不起作用 因为它
  • Git 分支从哪里开始以及它的长度是多少?

    我时不时地被问到 git 上的某个分支在什么提交上启动 或者是否在特定分支上创建了某个提交 分支的终点非常清楚 那就是分支标签所在的位置 但是 从哪里开始呢 简单的答案是 在我们的提交中created那个分支 但据我现在所知 这些信息在第一
  • np.linspace 和 np.arange 有什么区别?

    我一直用np arange 我最近遇到np linspace 我想知道它们之间到底有什么区别 查看他们的文档 np arange https numpy org doc 1 18 reference generated numpy aran
  • 如何从 2 个列表中确定最佳组合

    我正在寻找一种方法来使团体中的人员达到最佳组合 让我概述一下情况 假设我们有 A B C 和 D 此外 我们还有组 1 2 3 4 和 5 两者都是示例 可以更少或更多 每个人都给彼此打分 例如 A 对 B 的评分为 3 C 对 C 的评分
  • Objective-C 中的类对象和实例变量

    我很难理解这个概念 我直接引用书中的一句话 类对象还继承自层次结构中位于其上方的类 但因为它们没有实例变量 只有实例有 所以它们只继承方法 如果我错了 请纠正我 但类对象将是这样的 NSString aString NSString all
  • AWS Elasticsearch 和 CORS

    我正在试用 AWS Elasticsearch 服务 https aws amazon com elasticsearch service https aws amazon com elasticsearch service 设置非常简单
  • 根据 C++ 标准,int 变量是对象吗?

    下面您将找到 C 标准中对象的定义 介绍对象 1 http eel is c draft intro object 1 C 程序中的构造创建 销毁 引用 访问和 操纵物体 一个object由定义 6 1 创建 由新表达 8 3 4 隐式更改
  • SFSafariViewController PresentViewController 动画

    当我打电话时presentViewController mySafariViewController animated true completion nil 视图始终像导航控制器一样从右侧进行动画处理 我尝试打电话mySafariView
  • 如何在 postgresql 中更改类型并删除值[重复]

    这个问题在这里已经有答案了 我发现了如何增加价值TYPE 但我怎样才能从中删除价值呢 例如我有TYPE with enum values A B C 如何去除 C 要从枚举 enum test 中删除值 val1 您可以使用 DELETE
  • 从 Matlab 中的时钟图像获取时间 - 图像处理

    时钟 http img710 imageshack us img710 2623 circlock jpg http img710 imageshack us img710 2623 circlock jpg 我不知道如何确定时钟指针的顶部
  • iOS >> ShareKit >> 选择所需的共享服务

    我已经在我的应用程序中实现了 ShareKit 我同意它的默认工作方式 但我希望控制可供用户选择的服务 更具体地说 我不想处理默认嵌入的所有服务 而只想处理 Facebook Twitter 和 Mail 我在 ShareKit 文件中的哪
  • Git 格式补丁输出在单个文件中

    如何将命令 format patch 的输出定向到单个文件 stdout gt 文件名
  • 嵌入公共 Facebook 页面的活动源,无需强制用户登录/允许

    这与之前多次提出的问题类似 但无论我读什么 我仍然很困惑 我有一个公共 Facebook 页面 例如 White Collar 我需要将其活动源嵌入到我的 Android 应用程序中 我了解如何获取应用程序 ID 和应用程序秘密 但我不了解
  • 如何处理Junits中Maven和Intellij之间的相对路径

    我有一个带有模块的 Maven 项目 myProject pom xml myModule pom xml foo bar txt 考虑一个 JunitmyModule需要打开哪个bar txt 对于 maven basedir 是模块目录
  • g++:找不到文件

    我最近一直在开发一个程序 该程序从 Java 程序编译并运行 C 程序 我已经让一切基本正常工作 或至少据我所知 但后来我注意到一些东西被打印到错误流中 cdog5000 srv3 java Xmx50m jar main2 jar Run
  • Python 中首选 `if x:` 或 `if x != 0:` 哪一个?

    假如说x是一个整数 构造if x 功能上与if x 0 在Python中 某些语言的风格指南明确禁止前者 例如 ActionScript Flex 的风格指南指出 您永远不应该为此类事情隐式地将 int 强制转换为 bool Python
  • 持久感知 KieSession 在事务期间不使用悲观锁

    我在用Drools with 春季启动2 3 我已经实现了持久意识KieSession 其中MySQL用于存储会话 我已经成功集成了默认的EntityManagerFactorySpring Boot 与 Drools 的结合 但我的问题是
  • 限制数据帧中的小数位数 (R)

    我想在导入数据框时限制小数位数 我的 txt输入的列每行有 16 位小数Value 我的数据框如下所示 Value 0 202021561664556 0 202021561664556 0 202021561664556 0 202021
  • 处理来自 Electron (或其他桌面平台)的 oauth2 重定向

    这主要是缺乏对 oauth2 的理解 并且可能不是特定于 Electron 的 但是我试图理解某人如何处理来自桌面平台 如 Electron 的 oauth2 重定向 url 假设应用程序中没有 Web 服务设置 桌面应用程序如何提示用户输