小编use*_*210的帖子

清洁Magento Google Api OAuth2集成

简短问题: 在Magento中为管理区域实施Google Api OAuth2身份验证的最简洁方法是什么?

长篇问题: 所有新的Google API都使用OAuth2.php客户端库在这里,它抽象OAuth2处理 https://code.google.com/p/google-api-php-client/

这个过程很简单

  • 用户是否有AccessToken?
  • 没有
  • 好的,使用客户端库创建一个登录URL
  • 用户点击登录URL链接,将其带到Google登录
  • 通过身份验证后,Google会通过指定的重定向网址重定向回Magento
  • Google将URL作为网址的一部分发回.存放它.
  • 使用此AccessToken调用各种AP​​I

客户端库中的示例都是平面文件.所以我正在寻找将其融入MVC结构的最佳方式......或者Magento是精确的.

让我们具体一点.它用于检索Google通讯录.到目前为止,我有:

  • 一个名为ContactsController的管理控制器,带有索引操作.它做的第一件事是检查是否有访问令牌.如果没有访问令牌,则转发到auth操作.
  • auth操作只是呈现一个块,其中包含由google php客户端库"createAuthUrl()"生成的AuthUrl
  • 点击链接,谷歌登录页面加载,我登录
  • Google重定向回我在代码中指定的网址(以及Google API控制台https://code.google.com/apis/console).他们还传回了Access令牌.此URL必须是可预测的,因此它不能是管理区域URL,因为它们依赖于"key"url参数.因此,我创建了一个前端控制器和操作,以便Google重定向回.
  • 在前端控制器中,我存储了AccessToken.
  • 然后我重定向回管理控制器ContactsController索引操作.它看到一个AccessToken,应用程序实际上可以做一些事情.

我遇到的问题是我不能做最后的重定向.即使我使用adminhtml帮助器getUrl方法,它附加了'key'url参数,当我从前端重定向到后端时,我被踢到仪表板.

有没有更好的方法在Magento中实现Googles OAuth2?

如何重定向到直接管理URL?

php google-api magento oauth-2.0 google-api-client

6
推荐指数
1
解决办法
4137
查看次数

Elasticsearch - Analyzer创建正确的令牌但查询不匹配

我试图让Elasticsearch忽略连字符.我不希望它将连字符的任何一边分成单独的单词.看起来很简单,但我正在敲打墙壁.

我希望字符串"Roland JD-Xi"产生以下术语:[roland jd-xi,roland,jd-xi,jdxi,roland jdxi]

我无法轻易实现这一目标.大多数人只会键入'jdxi',所以我最初的想法就是删除连字符.所以我使用以下定义

  name: {
"type": "string",
"analyzer": "language",
"include_in_all": true,
"boost": 5,
"fields": {
    "my_standard": {
        "type": "string",
        "analyzer": "my_standard"
    },
    "my_prefix": {
        "type": "string",
        "analyzer": "my_text_prefix",
        "search_analyzer": "my_standard"
    },
    "my_suffix": {
        "type": "string",
        "analyzer": "my_text_suffix",
        "search_analyzer": "my_standard"
    }
}
Run Code Online (Sandbox Code Playgroud)

}

相关的分析仪和过滤器定义为

{
"number_of_replicas": 0,
"number_of_shards": 1,
"analysis": {
    "analyzer": {
        "std": {
            "tokenizer": "standard",
            "char_filter": "html_strip",
            "filter": ["standard", "elision", "asciifolding", "lowercase", "stop", "length", "strip_hyphens"]
        ...
        "my_text_prefix": {
            "tokenizer": "whitespace",
            "char_filter": "my_filter",
            "filter": ["standard", "elision", "asciifolding", …
Run Code Online (Sandbox Code Playgroud)

elasticsearch

6
推荐指数
1
解决办法
266
查看次数