未来几个月将弃用客户端密码和 ID [重复]

Posted

技术标签:

【中文标题】未来几个月将弃用客户端密码和 ID [重复]【英文标题】:Client secret & id to be deprecated in the coming months [duplicate] 【发布时间】:2020-12-09 06:36:48 【问题描述】:

我的代码有效,但请求格式将在未来几个月内弃用。

Github建议的新格式

curl -u my_client_id:my_client_secret https://api.github.com/users/user

有人可以告诉我在未来几个月内弃用它时重新格式化它的正确方法吗?我什么都试过了。这是我尝试过的一个示例:

我的尝试失败了

`-u $this.client_id:$this.client_secret https://api.github.com/users/$user`

我当前的代码

class Github 
  constructor() 
    // THESE ARE FAKE!!!
    this.client_id = 'a71344259aec03d0cea3';
    this.client_secret = 'a28202377336e199cb554bd099e6e5fe672788db';
    this.repos_count = 7;
    this.repos_sort = 'created: asc';
  

  async getUser(user) 
    const profileResponse = await fetch(
      `https://api.github.com/users/$user?client_id=$this.client_id&client_secret=$this.client_secret`
    );

    const repoResponse = await fetch(
      `https://api.github.com/users/$user/repos?per_page=$this.repos_count&sort=$this.repos_sort&client_id=$this.client_id&client_secret=$this.client_secret`
    );
    console.log(user);

    const profile = await profileResponse.json();
    const repos = await repoResponse.json();

    return 
      profile,
      repos,
    ;
  

【问题讨论】:

该格式是基本身份验证,请参阅:Basic authentication with fetch 【参考方案1】:

curl 中的-u 选项使用HTTP Basic authentication。

这样做是获取user:password 字符串,对其进行base64 编码(例如user:password => dXNlcjpwYXNzd29yZA==)并将其添加到Authorization 请求标头中,如下所示

Authorization: Basic dXNlcjpwYXNzd29yZA==

使用fetch 时,您必须使用btoa() 之类的方式手动执行此操作

const auth = btoa(`$this.client_id:$this.client_secret`)

fetch(`https://api.github.com/users/$encodeURIComponent(user)`, 
  headers: 
    Authorization: `Basic $auth`
  
)

【讨论】:

以上是关于未来几个月将弃用客户端密码和 ID [重复]的主要内容,如果未能解决你的问题,请参考以下文章

传苹果将弃用高通博通芯片;华为研发投入排全球第四;​微软新文本语音模型可在 3 秒内复制任何人的声音 | 极客头条

下一代 HTTP 底层协议将弃用 TCP 协议,改用 QUIC 技术

Vue3.0最新动态:script-setup 定稿,部分实验性 API 将弃用

使用 FirebaseUser 出错 - 表示已弃用 [重复]

我将如何在 php 中按给定月份和年份计算未来几个月

LocationAvailability 没有可用的位置