The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:
你知道什么是OAuth登录吗?就是当你的用户点击“登录”按钮后,会被重定向到Facebook、Twitter、Google或其他网站,然后这些网站会识别他们的身份。然后他们回到你的网站,你就知道他们是谁了。对于他们来说非常方便,对你来说也很方便,因为你不需要实现登录功能,也不需要在数据库中保存他们的凭证。我创建了一个简单的Ruby gem来简化GitHub的这个操作。下面是它的工作原理。
首先,你需要在GitHub上注册你的应用程序,就像这个页面所解释的那样。下面是在Sinatra中的使用方法,但你也可以在任何框架中使用类似的方法。
首先,在应用程序启动之前,在全局空间的某个地方:
接下来,对于所有的网页,我们需要解析一个 cookie,如果它存在的话,并将其转换为一个用户。
如果glogin
cookie存在并包含有效数据,本地变量@user
将被设置为类似以下内容:
接下来,我们需要一个GitHub OAuth回调的URL:
最后,我们需要一个登出的URL:
还有一件事是你需要用于前端页面的登录网址。在这里:
对于单元测试,您可以将空字符串作为secret
传递给GLogin::Cookie::Open
和GLogin::Cookie::Closed
,这样加密将被禁用:从cookie中获取的任何内容都将被信任。为了进行测试,提供一个查询字符串中的用户名将会很方便,就像这样:
为了使其生效,建议您添加此行(查看zold-io/wts.zold.io中的工作原理)。
我在Sinatra上的sixnines,0pdd和Zold网络应用中使用这个gem(都是开源的)。
Translated by ChatGPT gpt-3.5-turbo/42 on 2023-12-27 at 10:57