【发布时间】:2015-12-16 07:33:37
【问题描述】:
我有 Google API 的 OAuth 客户端 ID 和密钥。
我已经在 Odoo 的 Google OAuth 提供者记录中设置了客户端 ID。
我有合适的活动域。当我尝试使用 Google 登录时,会出现 google 登录屏幕。我输入适当的谷歌凭据,谷歌让我登录,然后谷歌尝试根据 url 中指定的 redirect_uri 键重定向回我的 odoo 实例。这是我面临“redirect_uir_mismatch”错误的时间点。如果我打开一个新标签并转到 google,它会显示我已登录。
我尝试将通过 Google OAuth 注册的 'redirect_uri' 与用于 google 登录的 url 中的密钥 'redirect_uri' 进行匹配,两者都相同。 p>
我注册了以下 redirect_uri:http://erp.mydomain.com/auth_oauth/signin。登录 google 时,url 中存在相同的 uri 密钥。但它会抛出 'redirect_uri_mismatch' 的错误
编辑:
我删除了 client_id 和 secret 并创建了新的并尝试对其进行测试,现在我的 odoo 实例中出现以下错误:
“您无权访问此数据库或您的邀请已过期。请请求邀请并确保点击您的邀请电子邮件中的链接。”
解决方案:
您需要将标志 "auth_signup.allow_uninvited" 设置为 "True"
【问题讨论】:
-
错误信息告诉你重定向 uri 是什么。把它放在谷歌开发者控制台中。
-
和我在google开发者控制台注册的一样。它的附加功能是包含“response_type”、client_id、范围的查询字符串。现在我也删除了那个 client_id 和 key 并创建了一个新的,现在它给了我邀请过期或无权访问数据库的错误。我不确定发生了什么。谢谢你的回复!!
-
有趣...将标志 "auth_signup.allow_uninvited" 设置为 "True" 的选项在哪里?我没有碰任何标志就解决了。
-
@Odedra 它在“安全->技术->参数->系统参数”中。在您的案例中是否创建了新用户?
-
不,就我而言,我不这样做。我认为我们必须向用户发送重置密码邀请的电子邮件。之后用户将单击该链接,它将重定向 Odoo 登录。在登录屏幕中,我们有使用 Google 登录的链接名称和 nred 以单击该名称和 Odoo 系统中的用户登录。确保登录 = 用户的电子邮件地址。
标签: google-oauth odoo odoo-9 google-signin