php - API认证困惑

标签 php api authentication oauth go

我的问题不是很深的技术问题,而是一个系统架构问题。

我正在使用 Go Lang 设计 API 后端。我想要几个客户端,比如网络服务器、手机等。我想所有这些客户端都应该有一个 secret 的 API key ,以便验证他们可以使用 API。同时,Web 前端将有很多具有不同限制的用户。我希望这些用户能够使用他们的 Facebook 或 Google 帐户登录。据我了解,这应该需要 OAuth 身份验证。我现在的问题是我应该在哪里添加 OAuth。仅在前端然后将用户保存在 session 中或在前端和后端之间。我对应该如何设置此通信和身份验证感到非常困惑。

我正在用 PHP 构建 Web 服务器,我希望 Web 前端真正轻量级并且或多或少仅用作 Go API 的空壳/ View 。我以前用普通的 PHP/MySQL 构建过系统,但我想转向基于 Go 的 API。

对于来自 Web 服务器前端的 API(比方说一个节目资料页面),URI 看起来像什么?我想像对“http.//backend.com:3000/[api-key]/[api-secret][oauth-token?]/profile 的 GET 调用。然后是一些中间件来验证 Web 客户端和另一部分用于对用户进行身份验证的中间件。这是“正确的”方法吗?

我希望你们能给我指出正确的方向。

提前致谢。

最佳答案

如果您查看 facebook 或 google 开发者文档,您会找到有关如何与他们的 oauth 登录系统集成的示例。

OAuth,或者至少是它的最后一步,确实必须在后端完成,因为您必须假设您的前端是攻击您系统的坏人。

对于 go oauth,看一下:https://github.com/golang/oauth2

你可能会有一个http.HandlerFunc("/oauth/google",yourGoogleFunc)http.HandlerFunc("/oauth/facebook",yourFBFunc) 输入 thing,然后您在这些公司的开发帐户上注册该 URL。

在测试时,使用 localhost:8080(或其他)作为回调 url 是最简单的,因此只要您使用本地浏览器,它就可以在任何机器上运行。

关于php - API认证困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31494979/

相关文章:

PHP 5.3 - 解决 500 错误 - 调试 - 解析错误

java - 如何将 map 转换为Java中的集合并将 map 的所有元素添加到集合中?

python - 无法在 Flask 中导入 LoginManager()

api - 仅用于 API 的 SSL 证书还是客户需要它们?

node.js - NodeJS 快速 session req.session 未定义

c# - 以编程方式检查 Windows 7 是否已激活

php - 表中元素随机顺序的最佳方法

javascript - Ajax 请求 : get text from database and display in div

php - 修改 Symfony Composer 供应商并使用它们直到他们的 PR 被 merge

javascript - 如何检测 youtube 视频何时播放完毕?