【问题标题】:Gmail api asking for credentials after classified with liferay使用 liferay 分类后的 Gmail api 要求提供凭据
【发布时间】:2014-12-04 05:50:44
【问题描述】:

我在liferay 中有一个portlet,它使用Web 服务从gmail 获取用户电子邮件。我已将gmail与liferay分类。这意味着当我登录 liferay 门户时,用户会自动登录 gmail。

现在我面临的问题是,假设用户已清除浏览器历史记录、cookie 等所有内容。之后,用户打开 liferay 门户并登录。因此用户将自动登录 gmail。到这里还好。之后,当我单击我的 portlet 时,它正在调用 gmail 网络服务来获取电子邮件。由于我已经登录到 gmail,因此此 Web 服务不应再次要求我提供 gmail 凭据。但它在问。假设我以编程方式在浏览器中打开“https://mail.google.com/a/edsoa.com”(这是 gmail 提供的特定域 url)一次,所以它将在浏览器中创建一个 gmail 会话,然后如果我访问 gmail 网络服务,那么它不会询问我的凭据。

所以我主要关心的是,有没有什么方法可以在浏览器中创建 gmail 会话而无需在浏览器中打开“https://mail.google.com/a/edsoa.com”。

简而言之,我想要实现的是,如果我已经在 gmail 中登录,那么即使访问任何 gmail 网络服务,gmail 也不应该要求我提供凭据。

任何帮助将不胜感激,因为我的时间不多了。

感谢和问候, Abdulbasit F Shaikh。

【问题讨论】:

    标签: liferay liferay-6 gmail-api


    【解决方案1】:

    您说您正在通过网络服务访问 gmail,但指的是正在登录/退出的浏览器 - 我真的不明白您的问题:如果您正在访问 gmail API(我不熟悉用它),这可能与服务器登录无关。

    我希望 gmail 网络服务 API 的登录源自 (Liferay) 服务器,而您的浏览器标识自然源自您的浏览器。因此,无法从 (Liferay) 服务器启动浏览器会话。

    但是,您可以尝试使用 OpenID 登录 Liferay - AFAIK google 也提供此功能。这意味着您需要向 google 提供您的凭据才能登录 Liferay。而且很可能这也会让您登录 gmail(前提是您使用相同的帐户)

    【讨论】:

    • 感谢奥拉夫的回答。我得到了提到的问题的解决方案,但又遇到了一些与发布的问题有关的麻烦。我在 liferay 中有一个应用程序,其中包含来自 gmail 的所有邮件。现在,当我单击任何电子邮件时,它会将我重定向到实际的 gmail 并打开我单击的邮件。但这只有在“mail.google.com/a/edsoa.com”在浏览器中至少点击一次时才会发生。但是假设我已经清除了我的浏览器 cookie。所以浏览器中不存在 gmail cookie。
    • 现在,如果我点击应用程序中的电子邮件,它会将我重定向到“mail.google.com/u/0/#inbox”,但不会打开我点击的邮件,因为这是第一次加载 gmail。之后,如果您单击任何电子邮件,它将正确打开。所以我主要担心的是,在清除 cookie 后,如果我点击来自 applicaiton 的邮件,第一次它也应该在 gmail 中打开邮件。
    • 这更多是谷歌处理来自其自己域之外的 URL 的问题 - 如果它记得您在登录之前请求的页面。恕我直言,这与 Liferay 无关,仅与谷歌有关- 所以我出去了,对不起,我不知道他们如何处理他们的网址。
    猜你喜欢
    • 1970-01-01
    • 2019-09-13
    • 2020-08-03
    • 2021-04-30
    • 2013-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多