Liferay 使用 API/Web 服务登录

Posted

技术标签:

【中文标题】Liferay 使用 API/Web 服务登录【英文标题】:Liferay login using API/Webservices 【发布时间】:2015-08-04 09:50:26 【问题描述】:

我正在使用 Liferay 6.2 CE。我们有 Liferay 网络应用程序,现在我们想为它制作移动(android)应用程序。

我必须提供一个登录 API,注册用户可以使用它在 Liferay 网络应用程序中从移动设备登录。一旦用户登录,他就可以继续访问该网站。

我还需要一个访问令牌,基于它我可以使用提供的access_token 验证下一个 api。

liferay 是否提供任何登录 API?

【问题讨论】:

您尝试过 Liferay 屏幕吗? liferay.com/de/community/liferay-projects/liferay-screens 我已经浏览了 liferay 屏幕,但我认为我们需要使用基于移动的 sdk 创建一个项目,然后我必须创建整个应用程序。但是因为我已经在 liferay 中准备好了网站。我必须向移动开发人员提供 api,以便他们可以直接调用 Liferay API。我是否可以使用 LoginScreenlet 创建一个 api,它在没有 sdk 的 Liferay 项目中使用用户的电子邮件 ID 和密码? 【参考方案1】:

Liferay 中没有 Web 服务登录 API。

所有 Liferay 网络服务都可以在这个 url 看到:

http://localhost:8080/api/jsonws(用于 json) http://localhost:8080/api/axis(用于 wsdl)

通过在 url 上传递登录名/密码来进行身份验证,例如:

wget http://test@liferay.com:test@localhost:8080/api/jsonws/country/get-countries

您还可以通过在请求中添加标头来使用基本身份验证(以 base64 编码)。

如果您需要另一个身份验证过程,您必须开发自己的 Web 服务。执行此操作的文档在这里:http://www.liferay.com/fr/documentation/liferay-portal/6.2/development/-/ai/json-web-services-liferay-portal-6-2-dev-guide-05-en

真诚的

【讨论】:

有什么想法可以使用我们可以在 api 响应中向用户发送 access_token 并使用此令牌我们可以下次验证用户吗? 我认为您必须创建一个新的身份验证过滤器(实现 AutoLogin),它可以使用您的“acces_token”数据对用户进行身份验证(如 BasicAuthHeaderAutoLogin 使用标头值)。之后,您必须创建一个为用户生成“acces_token”并在您的请求中传递acces_token 的网络服务。 感谢您的回复。让我试试这个。 如果您认为答案正确,请不要忘记接受答案。 ;) 您是否尝试创建新的 AutoLogin 过滤器?

以上是关于Liferay 使用 API/Web 服务登录的主要内容,如果未能解决你的问题,请参考以下文章

检查 Liferay 管理员用户登录

liferay 指定默认首页

[Liferay] Liferay 实现单点登录 - OpenLDAP

更改 Liferay 登录页面中的“OpenId Connect”链接的最佳方法是啥?

Liferay 7 中自定义登录后操作中的 LAST_PATH 重定向

使用简单的 Java 代码获取当前用户 Liferay