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

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

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 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 步 的时候就直接登录了.
9年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!