从Laravel中的自定义Socialite提供程序处理登录

时间:2016-09-03 22:17:22

标签: php laravel single-sign-on

我一直按照说明here在安装Laravel 5.3时为socialite安装此自定义提供程序

我使用访问令牌和用户对象中的所有内容重定向回来。

我想知道存储这些信息的最佳方式是将它们验证到应用程序中,或者如果用户不存在将它们放入新应用程序中。

这是我的控制器。

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
 use Socialite;
use App\User;

class AuthController extends Controller
{

    public function __construct(User $user)
    {
        $this->user = $user;
    }

    /**
     * Redirect the user to the Envato authentication page.
     *
     * @return Response
     */
    public function redirectToProvider()
    {
        return Socialite::with('envato')->redirect();
    }

    /**
     * Obtain the user information from Envato.
     *
     * @return Response
     */
    public function handleProviderCallback()
    {
        $user = Socialite::with('envato')->user();
    }
}

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我所做的是为他们创建一个用户条目,其中电子邮件(如果它没有从envato返回)和密码设置为null,并创建属于该用户的social_profile条目,该条目具有其访问令牌和envato id和任何额外信息。

现在有多个测试用例......例如,如果他稍后用电子邮件/密码注册。你让他通过电子邮件验证(如重置密码)。