如何使用Angular前端和Node后端以及从OAuth开始的Git中心API创buildWeb应用程序?

我的意思是说如何stream量应该在我的客户端和服务器和GitHub服务器之间。 从OAuth开始,只有我没有得到它,也被困在获取请求的错误。 从哪里可以获取OAuth的获取请求,客户端或服务器。 什么是更好的做法?

首先看看这张图(用draw.io制作)。

流程图

图解释:

正如你所看到的,在这张图中没有引用MEAN栈,因为这与你select的语言首选项没有任何关系。

你的客户可以是Angularjs | jQuery | ReactJS | 呃| 淘汰赛| 骨干| iOS | 安卓| …。

你的服务器可能是: node.js | PHP | python | java | ruby| ….

你的数据库可能是: mongodb | mysql | postgresql | CouchDB的| ….

了解OAuth API:

OAuth API允许用户使用基于一个地点的相同凭据从一个应用程序简单地login到另一个应用程序。

此外,它允许轻松地在不同的客户端应用程序上单点login

OAuth的基础依赖于一个注册和许多login。 几年前,当你想login到一个应用程序或服务,你将不得不注册。 那么如果你想login到不同的服务,你将不得不重新注册与明显相同的细节(电子邮件,出生date,用户名,密码,照片,性别…)只是为了不同的服务。

这是疯狂的,使我们成为用户不耐烦,每一次写这些细节。

那是很久以前,现在:你注册一次Facebook | Google Plus | GitHub | Twitter,你可以简单地login到不同的应用程序或服务与这些公司提供的凭据,作为回报,这些公司将为您提供这些细节(电子邮件,照片,性别,用户名,朋友,追随者)的软件提供商这是为用户自己减less了大量的数据。

对OAuth有基本的了解之后:让我们进入FLOW:

我将分阶段编写stream程:

第一步:用户打开你的应用程序。

第二步:用户可以select使用GitHub |login 最有可能的是,你也可以让他用自己的电子邮件注册。

第三个动作:用户selectgithublogin – >通过github打开一个popup窗口。 三种可能性:

A)用户有一个帐户并login。

– >只需按下accept,GitHub就会返回一个带有Access Token的callback函数,以及有关用户的通用数据。

B)用户有一个帐户,但没有login。

– >只需inputlogin凭证(电子邮件|用户名和密码) – >阶段A.

C)用户没有帐户。 – >用户注册Git Hub – > B阶段 – > A阶段

现在:您需要采取一些行动: 在GitHub中,您必须提供有关 – >成功loginredirect的信息。 这意味着:成功login后redirect的URL。

当您在设置中填写该url时,在用户login后, 他将被自动redirect到该URL,并且该请求将被发送他的详细信息。

只要您从GitHub API获得详细信息,就需要将用户保存到服务器上的数据库中。

为什么?

因此,用户在您的应用上所做的操作将被保存。

基本上,我保存一切:数据和访问令牌。

为什么我需要访问令牌? 如果您曾经想要在他的GitHubconfiguration文件中进行操作,例如fork新的repos,或者关注其他成员,则必须使用此访问令牌。

如果我不清楚的话,我会更乐意解释一下。

@linial