2012-05-24 3 views
1

yii-useryii-eauth 확장명을 사용하는 응용 프로그램을 함께 만들려고하는데 간략하게 설명하겠습니다. 내가 새로운 webapp을 만들고 eauth를 설치하면 잘 작동하도록 할 수 있으므로 그 일을 잘못하고있는 것이 아닙니다. 문제는 내 URL에 있다고 생각합니다. 이것은 다음과 같을 것으로 가정되는 데모입니다 : http://nodge.ru/yii-eauth/demo/login. 누군가가 Google을 클릭하면 Google 로그인 페이지로 이동하지만 응용 프로그램에서는 상태가 404 오류가 발생합니다 "The system is unable to find the requested action "login"." URL은 user/login/service/google_oauth 인 반면 URL은 user/user/login/service/google_oauth입니다. 이것을 수동으로 브라우저에 입력하면 오른쪽 페이지로 리디렉션됩니다.Yii-User 및 Yii-eauth 통합

그래서 EAuthWidget.php 클래스를 살펴보고 추가 "사용자"가 어디에서 왔는지 알 수 있었지만 알아 내지 못했습니다. 내 웹 응용 프로그램의 /modules/user 디렉토리에있는 사용자 모듈에이 파일이 있다는 사실과 관련이있을 수 있습니다. 나는 또한 URLManager을 사용하여 올바른 주소를 가리 키려고했지만 운이 없었습니다.

비슷한 경험을 가진 사람이 있습니까? 아니면 어떤 제안?

답변

2

당신은 단지 약간과 같이 (즉, 위젯의 action 속성을 변경)보기에 위젯 초기화 코드를 변경해야이 작업에 의존하는

<h2>Do you already have an account on one of these sites? Click the logo to log in with it here:</h2> 
<?php 
    $this->widget('ext.eauth.EAuthWidget', array('action' => 'login')); 
?> 

그냥, 추가 염두에두고 보기가이보기를 protected/views/site/login.php (yii의 기본 사이트 로그인보기)이라면이 위젯을 포함하고 있습니다. 그러면 yii-user 모듈의 로그인 동작으로 이동해야합니다. 그래서 그것은 : 'action'=>'/user/login' 일 것입니다. 그러나 yii-user의 프로퍼티에이 위젯을 포함시키는 경우 cted/modules/user/views/user/login.php 그러면 이미 언급 한대로 액션은 'login'이됩니다.

+0

필요하다면 설명을 요청하고 작동 방식을 알려주십시오. –

+1

굉장! 당신이 묘사 한대로 작동했습니다. 어쩌면 API를 더 조심스럽게 읽어야 할 것입니다. 이제 리다이렉트 URI에 무슨 문제가 있는지 알아 내야 만 할 수 있습니다. 고마워요! – Dan

+0

도와 드리겠습니다. 이와 같은 오류를 포착하는 것은 프레임 워크에서 더 많은 경험을 통해 쉽게 될 수 있으므로 코딩을 계속하십시오! –