生活服务——账号接入

来自Flyme开放平台
跳转至: 导航搜索

1 概述

魅族生活服务APP构建于开放的Flyme账号基础上,期望整合丰富的行业服务,实现共赢合作的目标。
为了合作伙伴能快速的接入魅族生活服务体系,实现Flyme账号和CPH5服务的联合使用,CP合作方需要先通过Flyme开放平台完成账号接入,本文档将基于《Flyme账号接入申请流程》,描述生活服务合作CP接入Flyme账号的流程。

2 联合登陆逻辑

在H5合作体系中,CP服务整合嵌入魅族生活服务APP。
当用户触发需要登陆的CP服务时,由服务触发Flyme账号登陆、授权流程;
用户填写flyme账号和密码,完成登陆授权,开放平台会将授权信息通过回调链接的方式传递给CP服务端;
CP服务通过调用开放平台接口获取token和用户标识信息。
最后通过flyme用户标识(open_id)进行账号关联,登陆H5服务,并完成联合登陆流程。
概要流程图示如下:

36514aed03b14ec596bd3afefbaf3f2a.jpg

3 接入流程

Flyme开放账号基于OAuth2.0,提供了两种标准登陆、授权方式:AuthCodeGrant和ImplictGrant。分别适合于服务方授信、授权和纯客户端授信、授权两种场景。
魅族生活服务H5合作方式中为了保障合作双方的数据、服务安全,需要进行双向校验,所以在生活服务H5合作体系中,我们采用AuthCodeGrant方式:
CP服务先通过AuthCode的登陆授权方式获取code信息,并调用开放平台接口获取flyme用户的token和标识信息(openId),最后通过openId进行用户关联。


3.1 请求flyme账户登陆

当用户触发需要登陆的CP服务时,需要请求Flyme账户登陆。CP需要构建和请求auth链接,开放平台会根据链接参数信息执行用户登陆授权流程并返回回调链接。

接口:

https://open-api.flyme.cn/oauth/authorize?response_type=code&client_id=[YOUR_CLIENTID]&redirect_uri=[YOUR_REDIRECT_URI]&scope=[THE_SCOPE] &state=[THE_STATE]

参数列表:

参数
是否必需
备注
response_type

code(生活服务CP接入固定使用此种类型)
client_id
必需
请前往Flyme开放平台注册申请获取
redirect_uri
必需
Flyme开放平台注册时需要提供的必要信息,成功授权后的回调地址,必须是注册client_id时填写的主域名下的地址,建议设置为网站首页或网站的用户中心。注意需要将url进行URLEncode。建议采用服务端接口作为重定向(可在服务端进行二次定向)
scope
必需
请求用户授权时向用户显示的可进行授权的列表。必须包含cp_trust
state
必需
client端的状态值。用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回。该信息为透传信息,开放平台不做转换处理。

返回信息:

据标准的OAuth2.0流程,如果用户授权后,开放平台会重定向到redirect_uri对应地址,并在地址参数中跟上Authorization Code信息(注意此code会在数分钟内过期)。
返回链接为:http://redirect_url?code=80a552e4affa418d9307c8050e8e38a0&state=stateabc

3.2 获取Token和OpenId

当用户完成Flyme开放平台的登陆和授权操作之后,开放平台会向CP服务重定向授权Code信息,为了获取到完整的用户token和标识信息(open_id),CP需要请求开放平台token接口。

接口:

https://open-api.flyme.cn/oauth/token

参数列表:

参数
是否必需
备注
grant_type
true
authorization_code
client_id
true
分配给client_id
client_secret
true
分配给client_secret
code
true
上一步获取到的code
redirect_uri
true
成功授权后的回调地址,必须是注册client_id时填写的主域名下的地址,建议设置为网站首页或网站的用户中心。注意需要将url进行URLEncode
state
true
client端的状态值。用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回

返回信息:

参数
备注
access_token
受信访问令牌,可用于check接口进行校验
token_type
授权类型,此值固定为“bearer”
refresh_token
刷新token,用于在access_token过期的情况下再取到一个access_token
expires_in
token有效果时长(单位:秒)
scope
token访问能力
open_id
Flyme用户对应的唯一ID,用于创建Flyme账户和CP账号的映射关系

3.3 校验token接口

如果CP服务在业务内需要对token进行校验,可以调用check接口。

接口:

https://open-api.flyme.cn/v2/check

参数列表:

参数
是否必需
备注
access_token
true
通过token接口获取到的flyme账号token

返回信息:

参数
备注
code
状态码,200代表正确返回,500代表flyme系统内部错误,100002代表token过期
value
包含open_id、scope、client_id等信息,CPServer端可进行校验,确保token来源、用户信息等可以匹配
massage
错误信息提示
redirect
保留字段


导航菜单