laravel 使用 google 帐户登录

2024-01-06

我正在制作一个应用程序,我希望用户使用他们的谷歌帐户登录。我有用户 oauth-4-laravel 并且我有这个:

用户控制器.php

// get data from input
        $code = Input::get('code');

        // get google service
        $googleService = Artdarek\OAuth\Facade\OAuth::consumer("Google");

        if (!empty($code)) {

            // This was a callback request from google, get the token
            $token = $googleService->requestAccessToken($code);

            // Send a request with it
            $result = json_decode($googleService->request('https://www.googleapis.com/oauth2/v1/userinfo'), true);

            $user = DB::select('select id from users where email = ?', array($result['email']));

            if (empty($user)) {
                $data = new User;
                $data->Username = $result['name'];
                $data->email = $result['email'];
                $data->first_name = $result['given_name'];
                $data->last_name = $result['family_name'];
                $data->save();
            }
            if (Auth::attempt(array('email' => $result['email']))) {

            return Redirect::to('/');
            }  else {
            echo 'error';    
            }
        }
        // if not ask for permission first
        else {
            // get googleService authorization
            $url = $googleService->getAuthorizationUri();

            // return to facebook login url
            return Redirect::to((string) $url);
        }
    }

之后,我成功获取用户信息并可以将用户名保存在我的数据库中。问题是,在此之后我想将用户重定向到主页,但无法执行此操作,因为正常登录时我会检查身份验证:

if (Auth::attempt(array('email' => Input::get('email'), 'password' => Input::get('password')))) {
            return Response::json(["redirect_to" => "/"]);

通过谷歌登录,我只得到用户名、用户 ID 和电子邮件。 google登录后如何直接登录用户?


如果您需要将现有用户实例登录到您的应用程序中,您可以简单地使用该实例调用登录方法:

$user = User::find(1);

Auth::login($user);

这相当于使用尝试方法通过凭据登录用户。

欲了解更多信息,请参阅:http://laravel.com/docs/security#manually http://laravel.com/docs/security#manually

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

laravel 使用 google 帐户登录 的相关文章

  • Laravel 5 未找到“App\Carbon\Carbon”类

    我最近run sudo composer update 现在在我的一个页面上 我不断得到 我确实用过 now Carbon Carbon now America New York in line 792 on my Helper php M
  • 我可以在 Laravel 5.2 中创建一个继承自 User 的新类吗?

    我对 Laravel 还很陌生 使用的是迄今为止的最新版本 5 2 因此我遇到了以下困境 我知道 Laravel 附带了一个User开箱即用的类 但我想开发一个系统 在其中我可以有另外两种类型的用户 称为Researcher and Adm
  • 如何使用 Laravel Mix 和 WorkBox?

    我正在尝试为我的应用程序构建一个 PWA 并花了近 48 小时试图弄清楚如何将 Workbox 与 Laravel Mix 结合使用 具有讽刺意味的是 谷歌说 Workbox 是为了让事情变得简单 Buh 好吧 到目前为止我已经弄清楚了 我
  • Google javascript 登录 api:无法离线访问

    我正在尝试为服务器端应用程序实现 Google 登录 如 Google 文档中所示 服务器端应用程序的 Google 登录 https developers google com identity sign in web server si
  • 用嘲笑测试 Laravel 外观总是会通过,即使它应该失败

    我试图在单元测试期间模拟 Laravel 中的一些外观 但似乎无论如何测试总是会通过 例如 此示例取自 Laravel 文档 Event shouldReceive fire gt once gt with foo array name g
  • Laravel:类控制器不存在

    我创建了一个简单的控制器并定义了一个函数 但是当我运行它时 它返回一个错误 指出控制器不存在 在我的 web php 中分配一条路线
  • GoogleSignIn ios 附加到谷歌表格

    我目前正在开发一个 iOS 应用程序 该应用程序需要写入登录用户拥有的 Google 工作表 要登录我正在使用的用户GoogleSignInpod 并附加到我正在使用的谷歌表GoogleAPIClientForREST Sheets pod
  • Composer 安装要求

    我正在尝试将 Composer 安装到 Laravel 项目中 当我做的时候sudo composer install在项目目录中它显示了两个错误 Problem 1 Installation request for simplesoftw
  • Laravel:使用 Faker 播种多个独特的列

    介绍 怎么样 伙计们 我有一个关于模型工厂和多个独特列的问题 背景 我有一个名为 Image 的模型 该模型将语言支持存储在单独的模型中 图片文字 图片文字 has an image id栏 语言栏和文本栏 图片文字有一个约束MySQL那个
  • 将 Laravel 集合/数组转换为 Javascript 数组

    我想将 Laravel 中的数组分配给 JavaScript 数组 我已经从我的AppServiceProvider和 json decoded 它像 View composer function view users Users all
  • 如何在 Laravel Mix 中将公共路径更改为包含下划线的路径?

    Laravel 5 4 中引入了 Mix 来编译资产并维护资产管道 Mix 默认为您的公共目录被命名public 在许多情况下 包括我的 我的公共目录被称为其他名称 就我而言 是public html 如何更改资源编译到的公共目录 我尝试过
  • Laravel 5.6 - 注册表无法正常工作并且不显示任何错误

    在我最近的一个项目中 定制登记表不管用 当我单击注册按钮时 它会重新加载注册表单 不会打印任何错误 并且不会将数据插入数据库中 这是注册表的外观 这里是移民文件代码 public function up Schema create user
  • Laravel 路由中的“as”关键字是什么意思?

    据我从 Laravel 文档中了解到 它用于重定向 但也许我错了 I wrote Route get user profile as gt profile function echo some text 然后我期望我的 URL 重定向自ht
  • 安装后如何使用 npm 包 (chart.js)?

    我正在制作一个练习 Laravel 站点 并且我已经通过 npm install 安装了 Chart js 这是一个愚蠢的问题 但现在我如何从这里使用它 或通过 npm 安装的任何东西 这些文件安装在节点模块文件夹中 我应该在页眉中使用标签
  • 在 null laravel 上调用成员函数 save()

    大家好 我正在使用 laravel 5 多态关系将数据保存在数据库中 但我遇到了一些问题 当我尝试将数据保存在数据库中时 它会抛出此错误 对 null 调用成员函数 save 我不知道为什么我会遇到这个错误 我正在关注多态关系的本教程在 L
  • 如何解决 Laravel 8 UI 分页问题?

    我在尝试最近发布的 laravel 8 时遇到了问题 我试图找出变化是什么以及它是如何工作的 当我这样做时 我遇到了分页 laravel 8 UI 变得混乱的问题 不知何故它发生了 有人可以帮助我吗 或者经历过同样的事情 像这样我在 lar
  • 如何在 Carbon Laravel 中添加日期和另一个日期?

    在我的 laravel 项目中 我想将日期时间增加到前一个日期时间 这是我的代码 expire order 0 gt expire date new Carbon now gt addMonths 6 这两行的结果是 2018 01 28
  • 如何将自己的js文件导入到vite中?

    我将 Laravel 与 Vite 结合使用 我想使用 Vanilla JS 代码添加文件 在我使用mix之前 我从来没有使用过Vite 我尝试将此代码添加到文件 vite config js 中 如下例所示 laravel input r
  • Laravel 从 API 响应中删除标头值

    Laravel 应用程序版本 5 6 我希望从 API 响应中显示的 Cache Control 标头中删除 private 值 我有一个中间件添加 无缓存 和 无存储 值 response next request response gt
  • laravel - 使用请求类或输入类

    在宁静的控制器中 我应该使用哪个类来获取传递的变量 member gt email Input get email or member gt email Request get email 两种选择都适合我 但有什么区别 Input get

随机推荐

  • 我正在使用 django table 2 并尝试按照官方文档导出我的表

    我已遵循 django table 2 的官方文档 但它不起作用 我不知道为什么 views py from django shortcuts import render from django tables2 import Request
  • scala 中缩进保留字符串插值

    我想知道在 scala 中进行字符串插值时是否有任何方法可以保留缩进 本质上 我想知道是否可以插入我自己的 StringContext 宏可以解决这个问题 但我想等到它们正式发布 这就是我要的 val x line1 nline2 val
  • 如何从数组中获取多个随机元素?

    我正在研究 如何从 JavaScript 数组中随机访问元素 我发现了很多与此相关的链接 喜欢 从 JavaScript 数组中获取随机项 https stackoverflow com questions 5915096 get rand
  • laravel 使用 google 帐户登录

    我正在制作一个应用程序 我希望用户使用他们的谷歌帐户登录 我有用户 oauth 4 laravel 并且我有这个 用户控制器 php get data from input code Input get code get google se
  • Android 代码截图。明白了,但还不完美

    我正在尝试在 Android 中的代码中截取屏幕截图 实际上 屏幕截图是主RelativeLayout 的位图 屏幕截图已拍摄 但内容显示错误 不遵守 fill parent 等标签 并且图像显示在左上角并具有原始大小 请任何人帮忙 Tha
  • Firefox 在提交按钮中添加 2px 内边距

    您好 我似乎在 Firefox 在提交按钮中添加 2 个额外像素的填充时遇到了一些问题 我已经在 chrome 和 IE9 中对此进行了测试 两种浏览器都可以正常渲染代码 Firefox 似乎在底部添加了 2 个像素填充提交按钮 右上角有钥
  • realloc会对旧指针做什么[重复]

    这个问题在这里已经有答案了 我有一个关于 realloc 函数的问题 应用realloc函数后旧指针的内容会改变吗 代码是 main int a b i a calloc 5 sizeof int for i 0 i lt 5 i a i
  • Android 视图上的投影

    我已经对此进行了一些广泛的代码示例搜索 但找不到任何内容 特别是 我希望向在 ImageView 中使用的 png 可绘制对象添加阴影 这个 png 可绘制对象是一个带有透明角的圆角矩形 有人可以提供一个代码示例 说明如何在代码或 XML
  • Firestore 安全规则 .hasAny(['A', 'B', 'C']) 仍然可以使用吗?

    似乎无法使用 Firestore 安全规则 hasAny 此方法是否已弃用或不再可用 我用它就像 Functions NOT WORKING function isTeamMember teamId userId return get da
  • 从地址抖动中获取坐标

    有人可以指导我在 flutter 中获取地址的坐标吗 我需要在文本框中输入地址并获取该地址的经度和纬度 您可以复制粘贴运行下面的完整代码您可以使用包https pub dev packages geocoder https pub dev
  • 用于命名空间限定的 C++ 预处理器标记粘贴

    我在 gcc 4 7 1 std c 11 中的预处理器标记粘贴运算符上遇到问题 即 考虑以下代码 Create a name for a global map this works define GLOBAL MAP name g map
  • 将 ZipOutputStream 返回到浏览器

    我有一个 ZipOutputStream 我想将其返回到浏览器 我想要的体验是用户单击锚标记 然后为我拥有的 ZipOutputStream 显示文件下载提示 如何将 ZipOutputStream 返回到浏览器 昨天必须做同样的事情 By
  • 为什么 Oracle 表/列/索引名称限制为 30 个字符?

    我可以理解 很多年前会有这种限制 但现在这个限制肯定可以很容易地增加 我们有对象的命名约定 但总会出现达到此限制的情况 特别是在命名外键时 有谁真正知道为什么这不是更大的尺寸 或者是 11 克更大 显然 答案是它将破坏当前未进行防御性编码的
  • JavaScript - 二分搜索每次都会挂起

    我有一个二维数组 如下所示 1 11 23 2 22 52 3 33 61 其中数组按每行中的第一个值排序 我试图在数组中找到一个值close到搜索值 在一定的灵敏度内 这种设置的方式以及灵敏度的值确保数组中只有一个可能的匹配 搜索值是鼠标
  • 将拟合摘要写入 pdf 文件或类似文件中

    我正在循环中对许多数据集进行线性拟合 并将结果绘制在 pdf 文件中 是否可以直接将summary fit 的输出保存在同一个pdf文件中 而不是通过控制台观察大约100个数据集的摘要 LMmodel lt y x fit lt lm LM
  • 我什么时候应该使用前进和移动?

    我有一个对向量进行操作的代码 template
  • PHP:将任何浮点数格式化为十进制扩展

    我想创建一个函数formatFloat 它接受任何浮点并将其格式化为十进制扩展字符串 例如 formatFloat 1 0E 25 10 000 000 000 000 000 000 000 000 formatFloat 1 0E 24
  • 如何将两个 long 相除并得到值?

    我需要计算整数和长整数的概率 但我总是得到0 整数a 234 长b 123453344L 浮动 c a b 如何在 Java 中得到正确的结果 您需要将其中一个投射为float 或将其中一个变量声明为float从头开始 否则 Java 的整
  • 何时适合在 Web 项目中使用 UUID?

    我正忙于一个新项目的数据库设计 我不确定是否使用UUID或普通的表唯一自增id 到目前为止 我建立的网站都在一台服务器上运行 非常大的流量从来都不是太令人担忧的问题 然而 这个 Web 应用程序最终将在多个服务器上同时运行 提供 API 并
  • 自定义控件中的膨胀布局 - 如何?

    我有关于如何在这里创建自定义控件的想法 Android 界面 需要有关使用哪些小部件的建议 https stackoverflow com questions 5891153 android interface need suggestio