## 手机密码登录换取用户TOKEN(authLogin) >[info] 场景说明:当访问需要用户登录的接口请求时,必须将访问TOKEN换成用户TOKEN ### 请求地址 ``` POST http://api.xxx.com/auth/login ``` ### 公共请求参数 | 字段 | 类型 | 是否必填 | 描述 | | --- | --- | --- | --- | | appid | string | 必须 | 平台提供的唯一APPID | | version | string | 必须 | 接口版本号,固定填:v3 | | sign\_type | string | 必须 | 签名类型,目前只支持md5 | | timestamp | string | 必须 | 发起时间戳,格式为:yyyy-mm-dd hh::ii::ss | | format | string | 必须 | 返回的数据格式,只支持json | | sign | string | 必须 | 请求参数的签名,请参考:[签名规则](signature.md) | | token | string | 必须 | 用户TOKEN | | params | string | 必须 | 请求参数的集合,除公共参数外,所有请求参数都必须放在这个参数中传递,json\_encode后送入 | 应用请求参数`params`格式 | 字段 | 类型 | 是否必填 | 描述 | | --- | --- | --- | --- | | phone\_mob | string | 必须 | 用户手机号 | | password | string | 必须 | 用户密码原文 | | logintype | string | 必须 | 登录类型,这里填:password | ### 请求示例 ``` { "appid": "您的APPID", "version": "v3", "sign_type": "md5", "timestamp": "2020-8-10 12:00:00", "format": "json", "sign": "op0987yhjmngt54rtg2wgdfvcder2765", "token": "49opolk90o87ujnhgyt543edfrew21qw", "params": { "phone_mob": "18987678765", "password": "abcdefg", "verifycode": "password" } } ``` ***** ### 公共返回参数 | 字段 | 类型 | 是否必填 | 描述 | | --- | --- | --- | --- | | code | integer | 必须 | 0=成功,其它值代表请求失败的错误代码,请参考:[公共错误码](response-code.md) | | message | string | 必须 | 请求成功/失败的描述信息 | | data | array | 必须 | 返回结果,如果没有指定用返回空 | 返回`data`参数格式 | 字段 | 类型 | 是否必填 | 描述 | | --- | --- | --- | --- | | token | string | 必须 | 用户TOKEN | | expire\_time | string | 必须 | 用户TOKEN过期时间 | | \+ user\_info | array | 必须 | 登录用户信息,处理客户端登录状态 | | └ userid | integer | 必须 | 用户ID | | └ username | string | 必须 | 用户名 | | └ nickname | string | 必须 | 用户昵称 | | └ phone\_mob | string | 必须 | 用户手机号,注意:手机号可能为空值 | | └ portrait | string | 必须 | 用户头像 | | └ store\_id | integer | 必须 | 店铺ID,没有店铺则为0 | ### 返回数据示例 ``` { "code": 0, "message": "成功", "data": { "token": "2A0EB97907A851519BB57F67D48ED162", "expire_time": "2020-8-14 13:34:35", "user_info": { "userid": 3, "username": "buyer", "nickname": "", "phone_mob": "18987678765", "portrait": "http://xxx.abc.com/portrait.jpg", "store_id": 0 } } } ```