Accounts 服务

注册与登录

@downcity/services 下最常见的 register、login 和 user_token 返回链路。

@downcity/services 最直接解决的问题,就是让产品在没有自建账号系统的情况下先跑通注册登录。

register

const session = await guest.service("accounts").action("register").invoke({
  email: "user@example.com",
  password: "password123",
  town_id: "town_demo",
});

login

const session = await guest.service("accounts").action("login").invoke({
  email: "user@example.com",
  password: "password123",
  town_id: "town_demo",
});

为什么这里要带 town_id

因为 service 在登录或注册成功后,通常会顺手向 City 申请该 town 下的 user_token

所以它需要知道:

  • 当前是哪个产品
  • 当前要给哪个产品上下文签 token

登录成功后要做什么

不是继续一直用 guest client,而是切到正常用户态:

const user = new City({
  role: "user",
  city_url,
  town_id: "town_demo",
  user_token: session.user_token,
});