github - 我可以在没有后端服务器的情况下通过 Chrome 扩展程序的 Github 帐户对用户进行身份验证吗?

标签 github google-chrome-extension oauth github-api

我正在编写一个 Chrome 扩展^,并希望允许用户通过其 Github 帐户进行身份验证(针对开发人员)。我不想仅仅为了身份验证而设置后端服务器,因为所有功能都可以在浏览器中离线完美运行。

我做了一些研究。似乎有两种选择可以在没有您自己的后端服务器的情况下实现 OAuth:

  1. 隐式授予,github does not support
  2. 使用一些其他服务(例如 Auth0)

我的问题是:

  1. 我可以在没有任何后端服务器的情况下通过用户的 Github 帐户对用户进行身份验证吗?
  2. 如果必须的话,身份验证流程是什么样的?

^没有认证功能的工具可以找到here .

最佳答案

我将根据我的研究回答我自己的问题。如果我的回答有误,请纠正我。

Can I authenticate a user via their Github account without any backend server?

简短的回答是肯定的。但你可能不想这样做。这是因为在 the second step ,您需要通过 POSTclient_secret 发送回 Github。通常,由于 same origin policy,您无法 POST 到 Github.com来自常规网页。 Extensions aren't so limited 。出于安全原因,您不希望将 client_secret 放入 JavaScript 中。

If I have to what does the authentication flow look like?

  1. 用户会被重定向以请求其 Github 身份。
  2. Github 会使用临时代码将用户重定向回您的网站。
  3. 您的应用程序(更可能是后端或 native 应用程序,但不是前端的 JavaScript)POST,其中包含 client_idclient_secret代码
  4. Github 在响应中包含 access_toke
  5. 您的应用使用用户的访问 token 访问 API。

关于github - 我可以在没有后端服务器的情况下通过 Chrome 扩展程序的 Github 帐户对用户进行身份验证吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46964929/

相关文章:

git - 与 Github for Mac 应用程序同步时出错

javascript - 从动态创建的 div 中获取 data-id 属性

asp.net-web-api - 除了 OAuth OWIN/Web Api 之外的 API key

ios - STTwitterAPI oauth登录

python - Mendeley Python SDK 中的身份验证问题

github - 通过 GitHub API 创建图像问题

git - 如何使用 Git 启动本地存储库?

json - 括号: Custom Theme

jquery - 如何将 css 属性设置为具有特定属性的标签?

javascript - DeclarativeContent - 等待显示页面操作