首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在FOSOAuthServerBundle TokenController中使用“前进”

在FOSOAuthServerBundle TokenController中使用“前进”
EN

Stack Overflow用户
提问于 2015-02-11 19:54:27
回答 1查看 756关注 0票数 2

我正在定义一个新的Controller作为,一个JS应用程序和OAuth服务器之间的代理。守则如下:

代码语言:javascript
复制
namespace Acme\SecurityBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;

class ProxyController extends Controller
{
    public function forwardTokenRequestAction(Request $request)
    {
        if( ! $request->isXmlHttpRequest() )
        {
            throw WhateverException();
        }

        $request->request->add( array(
            'client_id'=>'...',
            'client_secret'=>'...'
        ));
        return $this->forward('FOSOAuthServerBundle:Token:token');

    }
}

但是我得到了以下错误,因为--我要转发给的TokenController --有一个构造器将OAuth服务器作为参数

代码语言:javascript
复制
Catchable Fatal Error: Argument 1 passed to FOS\\OAuthServerBundle\\Controller\\TokenController::__construct() must be an instance of OAuth2\\OAuth2, none given

我不知道:

  1. 在哪里我可以得到这个服务器实例
  2. 如何将它传递给 TokenController
  3. 如果我的方法作为一个整体是正确的,是否正确
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-12 15:58:21

我会选择像$this->get('fos_oauth_server.controller.token')->tokenAction($request)这样的东西(没有尝试过,但应该有效)。

有关服务定义,请参见https://github.com/FriendsOfSymfony/FOSOAuthServerBundle/blob/master/Resources/config/oauth.xml,别名请参见DependencyInjection文件夹中的别名。Xdebug是您的朋友。

如果在此代理中预先设置了正绕过身份验证的client_保密/client_id,那么您可能完全可以跳过auth。

您可以使用令牌auth (它将用户重定向到登录页面),并为进一步的请求提供一个访问令牌。

这对我在决定使用https://aaronparecki.com/articles/2012/07/29/1/oauth2-simplified的哪种类型的auth机制时有很大帮助。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28463274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档