离线Python脚本中的OAuth和redirect_uri

2024-03-23

我目前正在尝试编写一个 Python 脚本,该脚本将使用 Deviantart 的 API 自动随机播放我最喜欢的歌曲。为此,我需要首先登录我的脚本。 Deviantart 使用 OAuth2 身份验证,这需要一个 redirect_uri,据我了解,它应该是运行我的应用程序的服务器。

但是我在我的计算机上本地运行该脚本(而不是在服务器上),并且只是通过 Python 发送 http 请求Requests图书馆。当 OAuth 过程将身份验证令牌所需的代码作为参数发送时,我如何进行身份验证GET调用redirect_uri,它对我来说没有什么特别的指向?有没有办法在不运行服务器的情况下进行身份验证?

EDIT

我的问题仍然是我正在运行一个简单的离线脚本,并且我不确定如何从中进行身份验证。

到目前为止,这是我的身份验证代码:

import binascii, os, requests

def auth():
    request = 'https://www.deviantart.com/oauth2/authorize'
    state = binascii.hexlify(os.urandom(160))
    params = {
        'response_type': 'token',
        'client_id': 1,
        'redirect_uri': 'https://localhost:8080',
        'state': state,
        'scope': 'user'
    }
    r = requests.get(request, params)
    print(r)

打印的响应只是一个 200 HTTP 代码,而不是访问令牌(显然,因为尚未在任何地方输入用户名和密码)。该请求被发送到 DA 的授权页面,但由于该页面本身实际上并未在我的脚本中打开,因此我无法输入用户名和密码在任何地方登录。而且我无法直接发送用户名和密码GET请求以这种方式进行身份验证(同样很明显,因为像这样发送密码是一个糟糕的主意)。

最好我想要一种方法,简单地让用户(我)在脚本运行的控制台中提示输入用户名和密码,然后在用户成功登录后让脚本继续执行。

或者,如果上述方法不可能,则脚本应在浏览器中打开授权网页,然后在用户登录后继续执行。

我将如何在 Python 中实现这两个解决方案?


如果您的应用程序处于离线状态,则无法使用授权代码或隐式授权类型:这两个流程都需要重定向 URI。

由于无法从 Internet 访问您的 python 脚本,并且 Deviantart 不允许使用其他授权类型(客户端凭据除外,但与您的情况无关),因此您将无法颁发任何访问令牌。

您的应用程序必须可通过 Internet 访问。

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

离线Python脚本中的OAuth和redirect_uri 的相关文章

随机推荐

  • Apache 上不带尾部斜杠的虚荣 URL

    下面的代码重写了我们网站上 profiles 目录中的所有 URLexample com profiles name to example com name 但我们还想删除结尾的斜杠 以进一步简化生成的 URL 使其更漂亮example c
  • 1 个 django 应用程序中约有 20 个模型

    我已经开始为自己开发一个通过浏览器运行的本地应用程序 最近读完 django 教程后 我认为使用 django 而不是简单的 python 可能会更好 有一个问题 我至少有 20 个模型 每个模型都有很多功能 很简单 它将创建一个巨大的模型
  • Android 应用程序中带有 KeyStore.getInstance 的 NoSuchAlgorithmException

    我在android中编写程序用于与服务器通信 我使用SSL协议 当我编写这段代码时 KeyStore ks KeyStore getInstance JKS 我收到这个错误 java security NoSuchAlgorithmExce
  • Mockito:如何在 Spy 中模拟对象

    该应用程序运行在JEE环境中 我希望将 Spy 注入到被测试的 bean 中 Spy 对象内部还有一些需要注入的 bean 如何将这些 bean 的模拟注入到 Spy 中 这是用例 package testinject2 import ja
  • 如何使用 MATLAB 创建 k 阶矩阵?

    我希望创建一个排名矩阵k 矩阵的维数是m x n 输入k满足这个条件k lt min m n 目前还不太清楚您的目标是什么 但为了创建一个矩阵B具有特定等级k 从矩阵A with rank至少k 您可能想利用svd并继续如下 gt gt g
  • 如何使用 Django Channels 进行多线程 AsyncConsumer

    我已经使用 Django Channels 一周了 有些事情让我烦恼runworker并行性 例如 我有一个 MQTT 客户端 它在收到消息时在通道中发布 基本 async def treat message msg channel lay
  • 如何使用 tesseract 4.0 或使用 pytesseract 检测图像中的表格? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想检测图像中的表格 识别表格块以及其中可能的文本 在 tesseract 的早 期版本中 可以使用参数 textord dump t
  • Mybatis 3.0.5 嵌套集合映射示例

    我正在研究 MyBatis 3 0 5 的映射功能 运行嵌入式模式的数据库是H2 1 3 160 在用户手册的帮助下 我让简单的部分工作起来 但我很难绘制出Set使用一个HashMap作为后备存储 以下是自定义集合的 Java 代码 该集合
  • IntellijIdea 中未解决的参考 Kotlinx。即使添加库后

    我只是想尝尝 Kotlin 协程 不幸的是 我无法使用该库kotlinx in IntelliJ 我已经通过下载了该库Maven 尝试使缓存无效 重建项目 尝试在新项目中使用它 Even IntelliJ正在建议kotlinx在自动完成中
  • 有没有办法在 Windows 中安装 therubyracer?

    有没有办法安装 therubyracer gem 即在 Windows 中运行 RoR 项目所需的方法 我尝试过正常方式 但不行 然后我尝试安装 cygwin 然后尝试安装 gem 但仍然没有运气 有人在windows下成功安装过这个吗 我
  • Leaflet OSM:多边形上的中心地图视图

    我想生成一个 html 文件 包括Leaflet库来显示OpenStreetMap用多边形查看 地图上的多边形应居中 为此 我遵循this https github com Leaflet Leaflet issues 1196讨论 但我仍
  • 上标下划线随文本向上移动

    我有类似以下的 HTML 代码 div We have winner of 1 div
  • JVM 源代码中的“intrinsify”是什么意思?

    intrinsify 是否意味着 JVM 的源代码有些 保守 但 JIT 编译器可以在 JVM 预热时进行一些优化 例如 UNSAFE ENTRY void Unsafe SetOrderedObject JNIEnv env jobjec
  • Three.js - 从点缩放圆柱体

    是否可以从特定点开始增加 Y 轴上圆柱体的比例 与圆柱体从其原点向上和向下生长到新比例不同 它只是像条形图一样从顶部向上 向下生长 当前代码 function animate render cylinder scale y 0 1 requ
  • PHP代码格式化程序/美化程序和一般的PHP美化[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 你知道有什么好的工具可以很好地格式化凌乱的 php 代码吗 最好是 Aptana Eclipse 的脚
  • 将 Spark 中的字符串数组转换为字节数组并使用 UDF 将其检索回来

    我正在尝试将 Spark 中的字符串数组转换为字节数组 然后将字节数组重新转换为字符串数组 但是 我没有按照我的预期取回字符串数组 这是代码 UDFs for converting Array String to byte array an
  • OrientDB地理定位

    我正在使用 OrientDB for NoSQL 数据库 但我不知道如何准确查询地理位置 我已阅读具体文档 东方数据库函数 https github com orientechnologies orientdb wiki SQL Where
  • python 中是否有终止线程的规范方法?

    我想在 python 中强制终止线程 我不想设置事件并等待线程检查它并退出 我正在寻找一个简单的解决方案 例如kill 9 这是否可以在没有肮脏的黑客 例如使用私有方法操作等 的情况下做到这一点 如果您不介意代码运行速度慢十倍左右 则可以使
  • 如何从 CodeIgniter 中的 URL 中删除“index.php”?

    我该如何删除index php从我的URL http en wikipedia org wiki Uniform Resource Locator在代码点火器中 我删除了index php从我的配置文件中 我已经运行了我的rewrite m
  • 离线Python脚本中的OAuth和redirect_uri

    我目前正在尝试编写一个 Python 脚本 该脚本将使用 Deviantart 的 API 自动随机播放我最喜欢的歌曲 为此 我需要首先登录我的脚本 Deviantart 使用 OAuth2 身份验证 这需要一个 redirect uri