1

我正在用 Laravel 和 Oneauth 捆绑包来通过 twitter 登录。

我一直在关注 Michael Calkin 的教程:http: //youtu.be/xlUFiZhwFiE

  • 我已经通过工匠安装了 OneAuth
  • 运行迁移
  • 创建了我的推特应用
  • 创建了一个带有 id、social_uid、social_provider、username、email 的 User 表
  • 创建了一个控制器 connect.php:class Connect_Controller extends OneAuth\Auth\Controller {}
  • 路由到连接:Route::controller( 'connect' );
  • 复制了视频中的功能(如下),这对我来说有点意义
  • 清除了我的浏览器缓存

所以,在测试中:

  • 我访问了链接mysite.dev/connect/session/twitter
  • 单击按钮导致 twitter 请求身份验证(创建了一个新帐户进行测试)
  • 授权推特
  • 被退回users/social_register
  • 一个新用户被添加到表中oneauth_client
  • 下面的代码片段应该只显示返回的用户数据,但实际发生的是,虽然 URL 读取 /users/social_register,但视图 users.index 被显示!

控制器:users.php

...
public function get_social_register()
{
    $user_data = Session::get( 'oneauth' );

    dd( $user_data );
}

(完整代码在这里:https ://gist.github.com/ptim/a29bb86b3fb7455c19ba )

啊,还有我的路线:

Route::controller( 'connect' );
Route::get('users/(:any)', 'users@index' );
Route::controller(Controller::detect());

那里有一些冗余......不确定这是否重要

任何建议表示赞赏!德克萨斯州,蒂姆

4

1 回答 1

3

您正在将 users/(:all) 查询重定向到用户控制器的索引功能:

Route::get('users/(:any)', 'users@index' );

试试这个而不是 up:

Route::any('users/(:any?)', array('uses' => 'users@(:1)', 'defaults'=>'index'));
于 2013-02-11T17:32:45.600 回答