我想安裝Symfony2.1與HWIOAuthBundle來處理谷歌oauth身份驗證。Symfony2.1 - HWIOAuthBundle和谷歌oauth身份驗證
我已經按照包中的手冊說明進行了描述,但仍然缺少一些東西。當我訪問需要經過身份驗證的用戶的操作時(或者只輸入url/connect/google),我將被重定向到Google身份驗證頁面 - 此部分正在工作。但在重定向後(在登錄Google並同意共享我的數據後),新用戶不會在數據庫中創建,並且我被重定向到連接/失敗操作。 Google認證應該只是認證用戶的一種方式。任何想法可能是錯的?
這是我的路由:
hwi_oauth_redirect:
resource: "@HWIOAuthBundle/Resources/config/routing/redirect.xml"
prefix: /connect
google_login:
pattern: /login/check-google
security.yml
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
secured_area:
pattern: ^/
form_login:
provider: fos_userbundle
login_path: /connect/google
check_path: /login/login_check
logout: true
anonymous: true
oauth:
resource_owners:
google: "/login/check-google"
login_path: /connect/google
failure_path: /connect-fail
# FOSUB integration
oauth_user_provider:
service: hwi_oauth.user.provider.fosub_bridge
和配置
hwi_oauth:
firewall_name: secured_area
resource_owners:
google:
type: google
client_id: ....
client_secret: ......
scope: "https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile"
fosub:
username_iterations: 5
properties:
google: googleId
谷歌的redirectUrl
http://xxxx/login/check-google
我的用戶實體:
class User extends BaseUser
{
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var integer $id
*
* @ORM\Column(name="google_id", type="integer")
*/
protected $googleId;
//編輯 - 更新
我只是在Symfony的日誌,我已經從谷歌一個請求重定向發現: GET http://xxxxx.dk/login/check-google?code=4%2F8tiDAhI45D2g7BvrdtwoF7wJ.Eu7i2fmkYOl05ti8ZT3YDrXXXXXfakeXXXE4hcwI之前重定向到/連接文件
不幸的是,它看起來該請求只試圖從我的數據庫中檢索用戶google_id SELECT * FROM app_user t0 WHERE t0.googleId =?限制1:['123456789']但該用戶在那裏不存在。
我是否應該創建用戶befor我試圖驗證他/她?