Php 如何使用Google OAuth在Laravel中设置记住标记

Php 如何使用Google OAuth在Laravel中设置记住标记,php,laravel,authentication,google-oauth,Php,Laravel,Authentication,Google Oauth,这个标题大致概括了这一点。在使用Google验证用户时,我在使用Auth::trunt时遇到问题 我尝试在我的用户类上添加以下内容,但似乎不起作用 public function getAuthPassword() { return $this->some_field; } 有没有办法手动设置记忆令牌?或者有没有一种方法可以让Laravel查看不同的密码字段 我将尝试扩展Auth::()我们来看看结果如何。好吧,我想出来了。我做了几件事 1。创建一个应用/扩展文件夹,并在该文件夹

这个标题大致概括了这一点。在使用Google验证用户时,我在使用
Auth::trunt
时遇到问题

我尝试在我的用户类上添加以下内容,但似乎不起作用

public function getAuthPassword()
{
    return $this->some_field;
}
有没有办法手动设置记忆令牌?或者有没有一种方法可以让Laravel查看不同的密码字段


我将尝试扩展
Auth::()我们来看看结果如何。

好吧,我想出来了。我做了几件事

1。创建一个应用/扩展文件夹,并在该文件夹中创建一个新类。

新类
ExampleAuthProvider扩展了EloquentUserProvider

这里棘手的部分是筛选旧问题和文档,以获得正确的类列表。这是我的清单

use App\User;
use Illuminate\Support\Str;
use Illuminate\Contracts\Auth\UserProvider;
use Illuminate\Contracts\Hashing\Hasher as HasherContract;
use Illuminate\Contracts\Auth\Authenticatable as UserContract;
use Illuminate\Auth\EloquentUserProvider;
2。我重写了
retrieveByCredentials()
validateCredentials()

以下是
检索凭据()

validateCredentials()

现在,这只是功能性的,但我需要在这个新字段上实现哈希,如果您查看
EloquentUserProvider
s方法for
validateCredentials()
,您将看到它执行哈希检查

3。创建新的服务提供商。

php artisan make:provider YourNewsServiceProvider

在boot方法中,根据

一旦我重新添加了hash方法,我还将把
newhasher
传递给
OauthProvider

确保导入您的类

use Illuminate\Contracts\Hashing\Hasher;
use App\User;
use \Auth;
use App\Extensions\OAuthProvider;
use Illuminate\Support\ServiceProvider;
4。将您的服务提供商添加到config/app.php

App\Providers\CustomAuthProvider::class,

我可能应该在提供者名称中包含服务

我想这就是一切。这是一次有趣的经历。此外,我将是第一个承认我是一个非常新的开发人员,也许我把事情搞砸了

public function validateCredentials(UserContract $user, array $credentials)
{
    $plain = $credentials['value_to_replace_password'];

    if ($plain != $user->getAuthPassword()) {
        return false;
    }

    return true;
}
public function boot()
{
    Auth::extend('customAuth', function($app)
    {
        return new OAuthProvider(new User);
    });
}
use Illuminate\Contracts\Hashing\Hasher;
use App\User;
use \Auth;
use App\Extensions\OAuthProvider;
use Illuminate\Support\ServiceProvider;