将第三方账号绑定到当前的用户系统

有个疑惑,很多应用在手机 app 端可以使用第三方账号登录,已经注册过账号的可以与之绑定,否则,创建个新的账号并绑定,想请教下各位具体的实现是怎么样的。尤其是当用户退出,再登录的时候,后台的验证逻辑是一般是个怎样的过程。

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 2
Summer

以下是个允许微博登录和微信登录的用户表结构:

Schema::create('users', function(Blueprint $table)
{
    $table->increments('id')->unsigned();
    $table->string('username')->index();
    $table->string('password')->nullable();
    $table->string('email')->nullable()->index();
    $table->string('mobile')->nullable()->index();
    $table->string('avatar')->nullable();

    // 注意这里
    $table->string('weixin_id')->default('')->index();
    $table->string('weibo_id')->default(0)->index();

    $table->softDeletes();
    $table->timestamps();
});

当用户点击 微信登录 按钮的时候,逻辑是这样的:

  1. 通过微信 SDK 跳转到微信客户端获取用户允许;
  2. 用户在微信客户端点击 允许登录 , 返回用户信息到应用;
  3. 应用从微信返回的信息里面获取到用户的 UUID (可以理解为微信 ID 但是非常不一样);
  4. 拿上面的 UUID 去请求服务器端,看是否已经在数据库里面,有的话直接登录应用;
  5. 否的话,进入注册流程,并记录 UUID 到对应的用户数据里;
  6. 注册成功后,下次流程走到 第 4 步 的时候就直接登录了.
10年前 评论