您好,
我正在尝试从我的前端应用程序创建到 Discourse 的登录流程。我该怎么做?
谢谢 
这是常规解决方案:
如果你只管理 Discourse 用户,那么重定向按钮可能更容易!
1 个赞
感谢您的回复!但我能否实际打开一个 iframe,让他们选择如何进行身份验证?
否,不支持 iframe。
您要么想在父网站上管理用户帐户,然后使用 Discourse Connect 进行身份验证,要么只需链接到您的 Discourse。
您可以链接到登录路由以立即提示他们?/login
我不太明白该如何使用它。我的意思是,我设想在我的网站上有一个登录按钮,然后用户需要选择如何进行身份验证,对吗?我的意思是,这种情况可能有哪些流程?
您为什么需要他们在您的网站上登录?您是在那里管理用户帐户吗?
我希望能够从我的前端创建帖子/主题,因此我需要先对它们进行身份验证。有道理吗?
好的,这有点道理。你的意思是:“我想重写UI的部分内容,并且只通过API进行通信”?
我认为你在这里得不到多少免费支持来帮助你完成这项工作,但可以看看:
https://meta.discourse.org/t/help-with-authenticating-user-via-api/178355/2?u=merefield
已经有一些这方面的努力,特别是通过应用程序,你可能想研究一下,例如:
还有Fig,但它还没有开源:
但请注意,这些解决方案需要极高的前期开发和维护投入。我认为最好的两个例子已经被放弃了(?)。
或者考虑完全将你的网站构建为一个Discourse实例(通过插件和主题组件),以避免重写许多UI元素。
1 个赞
renato
(Renato Atilio)
9
我正在使用 Discourse 作为我的身份提供者,它运行得非常好。你可以用它在你的网站上创建一个“登录”链接,它会将你的用户带到你的 Discourse 实例,如果他们已经登录或在完成登录流程后,用户将被重定向到你在 payload 中添加的 return_sso_url,并附带用户凭证和信息。这个 return_sso_url 可以是你网站上的一个路由,一旦收到 Discourse 的 payload,就可以按照你偏好的方式(例如 session cookie)存储已认证的会话。
3 个赞
RyanKF
(Ryan)
10
FWIW,Lexicon 并未被放弃,仍在积极开发中。
@Roie_Natan 如果您熟悉 Javascript,可以查看 Lexicon 的源代码,了解它是如何实现的。
但是,正如 @merefield 所指出的,有一些现有的帖子可以帮助您弄清楚。
这是一个关于用户会话的资源:Storing extra data about a user's session - #3 by sam
您可能还会发现 @pmusaraj 的应用程序的身份验证流程很有用:
3 个赞