我正在编写一个论坛应用程序,需要处理本地用户帐户(在数据库中)以及远程用户帐户(在不同的服务上)。这就是我到目前为止所拥有的:
现在,远程提供程序有一个API端点,可以通过发送用户名和密码并获取布尔值(true / false)来验证用户身份。我的测试请求看起来像这样:
POST /authenticate
...other headers...
username=mytestuser@testuser.com&password=testuserpassword
有这样的回复:
<boolean>true</boolean>
XML很容易解析,我唯一的问题是Omniauth似乎将提供者抽象为request_phase
和callback_phase
。我的提供商似乎只有request_phase
。我该怎么办? Omniauth是应用程序的正确工具吗?
答案 0 :(得分:2)
我使用自定义Devise策略以及httpclient
gem实现了这一点。从那里开始,就像调用API端点并解析XML来检查并查看是否有有效用户尝试登录一样简单。如果用户之前从未登录,我创建了无密码用户