Laravel 4 Auth with Facebook(无密码身份验证)

2023-12-09

我正在尝试使用 Laravel 4 设置一个通过 Facebook 登录的身份验证系统。我正在为 Laravel 4 使用 madewithlove/laravel-oauth2 包。

当然,当用户使用 Facebook 登录时,没有密码可以添加到我的数据库中。然而,我试图检查用户 ID 是否已在数据库中,以确定是否应该创建一个新实体,或者只是登录当前实体。我想使用 Auth 命令来执行此操作。我有一张名为“粉丝”的桌子。

这就是我正在处理的内容:

 $fan = Fan::where('fbid', '=', $user['uid']);

                if(is_null($fan)) {

                  $fan = new Fan;

                  $fan->fbid = $user['uid'];
                  $fan->email = $user['email'];
                  $fan->first_name = $user['first_name'];
                  $fan->last_name = $user['last_name'];
                  $fan->gender = $user['gender'];
                  $fan->birthday = $user['birthday'];
                $fan->age = $age;
                $fan->city = $city;
                $fan->state = $state;
                  $fan->image = $user['image'];

                  $fan->save();

                  return Redirect::to('fans/home');

                }

                else {

                  Auth::login($fan);
                  return Redirect::to('fans/home');

               }

风扇型号:

<?php

class Fan extends Eloquent {
    protected $guarded = array();

    public static $rules = array();
}

当我运行这个时,我收到错误:

Argument 1 passed to Illuminate\Auth\Guard::login() must be an instance of Illuminate\Auth\UserInterface, instance of Illuminate\Database\Eloquent\Builder given

编辑:当我使用时:$fan = Fan::where('fbid', '=', $user['uid'])->first();

我收到错误:

Argument 1 passed to Illuminate\Auth\Guard::login() must be an instance of Illuminate\Auth\UserInterface, null given, called in /Applications/MAMP/htdocs/crowdsets/laravel-master/vendor/laravel/framework/src/Illuminate/Auth/Guard.php on line 368 and defined

我不知道为什么它给我这个错误。您对我如何完成这项工作有什么建议吗?感谢您的帮助。


您必须在模型中实现 UserInterface 才能使 Auth 正常工作

use Illuminate\Auth\UserInterface;
class Fan extends Eloquent implements UserInterface{
...
public function getAuthIdentifier()
{
    return $this->getKey();
}

/**
 * Get the password for the user.
 *
 * @return string
 */
public function getAuthPassword()
{
    return $this->password;
}
}

getAuthIdentifier 和 getAuthPassword 是抽象方法,必须在实现 UserInterface 的类中实现

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Laravel 4 Auth with Facebook(无密码身份验证) 的相关文章

  • 无法在有状态组件根元素上使用 v-for,因为它呈现多个元素?

    app js var Users template tr th list idx th td list id td tr data function return UsersData get data from query var main
  • 使用 Google 帐户作为登录...下一步是什么?

    我正在开发一个 Android 应用程序 它将有一个类似 api 的服务器端 而且这个应用程序将有用户登录机制 我想使用 google fb twitter 帐户作为登录信息 因为该应用程序的用途非常社交化 我已经阅读过有关使用手机中存储的
  • 数据库 - 字符串作为主键? [复制]

    这个问题在这里已经有答案了 我使用 Laravel 5 开发一个应用程序 并在开发过程中使用 sqlite 我想稍后切换到更快的东西 我想要一个字符串作为用户表的唯一标识符 这有什么问题吗 例如使用外键 或者说自动递增整数没有什么区别 简短
  • iOS Facebook SDK:必须使用活动访问令牌来查询有关当前用户的信息

    我已经遵循了许多示例并查看了有关此访问令牌错误的许多问题 但我似乎无法找出为什么我会收到它或如何修复它 我像在 3 1 sdk 示例中那样初始化 Facebook NSArray permissions NSArray alloc init
  • 从 Laravel 中的命令调用控制器方法

    我有一个通过 Redis Pub Sub 监听的命令 收到发布后 我想调用控制器方法 以便可以更新数据库 但是 我无法找到任何关于如何从项目内部但在路由外部调用带有参数的控制器方法的解决方案 我见过的最接近的东西是这样的 return re
  • 在同一站点上使用基本身份验证和表单身份验证

    谁能告诉我 是否可以在我的网站上同时使用基本身份验证和表单身份验证 而两者不会相互干扰 我有一个新网站 出于批准目的 我只希望某些人看到该网站 该网站有一个使用表单身份验证的会员区域 现在当任何人在通过基本身份验证后进入该网站时 他们都会被
  • 当 Axios 中的 responseType 为 blob 和 VueJs 时,如何读取 http 错误? [复制]

    这个问题在这里已经有答案了 我在 VueJS 应用程序中使用 Blob responseType 和 Axios 从服务器下载文档 当响应代码为 200 时 它工作正常并下载文件 但是当出现任何 http 错误时 我在捕获错误时无法读取状态
  • 在 facebook 的 share.php 上传递标题、url 和图像

    我想在 facebook 上分享标题 图像和描述 无需 javascript 只需将这些传递到 facebook 的 share php 即可 我在这个网站上得到了一些有问题的代码用于社交书签的 AddThis AddToAny Share
  • 在 Windows 应用程序中保存用户凭据

    是否有在 NET Windows 应用程序中存储凭据的最佳实践方法 无论是内置 API 还是只是推荐的加密算法 与 Tortoise SVN Spotify 和 Skype 一样 Edit 我的目的是使用一个从其身份验证服务返回令牌的 We
  • 请求通过营销 API 在 Facebook 中推广 iOS 应用程序

    我的 Facebook 申请已获批准ads read manage pages ads management business management and Ads Management Standard Access permission
  • Laravel 插入三向数据透视表

    Summary 我正在构建音乐发现服务 我的问题是 如何将数据插入三向数据透视表 标签 跟踪 用户 Schema 我看到了这个架构在 LaravelSD http www laravelsd com share WNmzz8 它由六个主表
  • Laravel 中无效后防止重定向到主页

    我正在使用 Laravel 5 3 开发 RESTful API 因此我正在使用我的控制器测试一些功能和请求 我需要做的一件事是在数据库中添加字段之前验证用户发送的请求 因此 我使用自定义 FormRequest 来验证它 当我在 Post
  • Laravel 5.4 邮件,传递数据

    我正在尝试使用 Laravel 5 4 中的简单联系表单向自己发送一封电子邮件 我的表单有 4 个输入 Nom prenom 电子邮件和消息 我只想发送一封包含邮件模板中数据的电子邮件 这是我的控制器 this gt validate re
  • laravel services.json 未创建

    有时我的services json运行后丢失composer update or php artisan clear compiled 我检查了权限 甚至将存储文件夹的权限更改为 777 但没有帮助 我怎样才能调试出什么问题 我的 lara
  • 如何像格式化数组一样使用 monolog 记录多行条目?

    我正在尝试记录一个数组monolog in symfony logger this gt get logger logger gt info print R user true 我得到的输出未格式化为 print r 预期的格式 它将所有内
  • Laravel 5 错误处理

    我正在使用 Laravel 5 并且正在尝试制作自定义 404 页面和自定义异常处理 但我不知道将代码放在哪里 前段时间有一个 ErrorServiceProvider 不再存在 有人能给我一些指点吗 编辑 我看到他们在 App Excep
  • laravel 4嘲笑模拟模型关系

    假设我有两个模型延伸自Eloquent并且它们彼此相关 我可以嘲笑这段关系吗 ie class Track extends Eloquent public function courses return this gt hasMany Co
  • 如何在laravel中获取youtube视频的id

    我想获取我使用此代码的 youtube 视频的 id url video gt link if preg match youtube com watch v url videoId values videoId 1 else if preg
  • 有人让 memcached 在 Laravel Homestead php7 盒子上工作吗?

    我在新的 Homestead php7 盒子上加载了 Laravel Lumen 并遇到了这个错误 FatalThrowableError in MemcachedConnector php line 51 Fatal error Clas
  • 找出用户属于哪些组

    我有一个刚刚创建的 Windows 用户帐户 以 XYZ 为例 此 XYZ 属于我在计算机管理 gt 本地用户和组中创建的用户组和自定义组 因此 在属性中我看到该用户属于 2 个组 现在我想获取这些组并显示它们 有什么建议么 我已经这样做了

随机推荐