# 免登陆流程对接
## 1.免登录url定义
对接开发者从活动或者OSX入口跳转到OSX短说页面时,实现用户uid身份标识回传的统一接口url地址。通过免登录url实现开发者用户从指定OSX入口直接跳转到OSX短说页面,不需要再进行二次登录。
#### 注意事项:
免登录url涉及到签名加密以及有效期验证(5分钟有效期),开发者生成免登录地址时需要有服务端动态生成
## 2.免登录url接口地址
因为请求OSX短说的免登录url链接地址是需要开发者服务端动态生成。开发者在用户手机入口配置的地址,是要能够请求开发者服务端的接口,该接口实现接收用户登录信息,OSX短说任意页面地址(定义参数dbredirect,如前端未传递该参数,开发者服务端可定义默认地址),请求服务端生成免登录url链接的方法地址,用户再通过该地址跳转OSX短说页面。
## 3.参数定义
#### 1.appKey
OSX短说应用唯一标识,OSX短说应用后台自动分配,可以从后台获取。
#### 2.dbredirect(游客唤起登录使用)
游客唤起登录时,跳转开发者客户端登录页时携带的参数,该参数也是OSX短说重定向的页面地址。
#### 3.redirect
免登录url链接地址中的参数,该参数决定免登录url跳转重定向之后,跳转到OSX短说具体页面的参数地址。
#### 交互流程
![](https://img.kancloud.cn/15/bd/15bd99f20b14a34bc2e4624a47d1e954_1004x572.png "blob.png")
## 4.直达OSX短说指定页面
在免登录url地址中,redirect参数是决定免登录url地址请求兑吧之后自动重定向到任意指定页面的地址参数,该参数可以是OSX短说的首页,版块主页,帖子详情页和任意浏览器链接可访问页面。免登录url地址中的redirect参数,可以从免登录接口地址的**dbredirect**参数获取,也可以开发者在免登陆URL接口中自定义,下面介绍dbredirect.
#### 透传参数dbredirect(游客唤起登录使用)
**dbredirect**参数是在**游客唤起登录**时,确保登录成功后跳转到原操作界面的参数;是OSX短说约定默认给开发者注册登录界面回传的参数,用户在开发者注册登录界面登录后,开发者需将**dbredirect**传递到免登陆url生成接口中。
若免密登录url生成接口接收到**dbredirect**参数,则**在免登录接口请求服务端生成免登陆地址时候,赋值给免登录地址的redirect参数**(用于点赞、评论等操作前登录,登录后再跳转回原操作界面);
#### 免登陆URL接口中自定义着陆页
默认着陆页:osx短说默认着陆页是首页,开发者可以设置OSX短说的任意页面作为普通用户在OSX短说中的着陆页。
若免密登录url生成接口**未**接收到**dbredirect**参数,则将**开发者服务器配置的默认着陆页经过urlEncode后赋值给免登录地址的redirect参数**(redirect参数为””时表示采用OSX短说的默认着陆页)。
## 5.免密登录流程详解
*![](https://img.kancloud.cn/9b/9c/9b9cd601b9d7ac32c94e1c6dfe286b9b_906x484.png "blob.png")*
##### Step1.开启第三方平台接入,同时配置用户信息获取接口到OSX短说后台
### 用户信息获取接口示例:https://demo.opensns.cn/getuserinfo
![](https://img.kancloud.cn/24/d5/24d594e30a823dda17e855ccde726274_1115x764.png "blob.png")
##### Step2.用户点击短说入口后,开发者客户端请求免登陆URL生成接口
##### Step3.免登陆URL生成接口根据【“免登陆URL生成规则”】生成免登陆URL并返回给开发者客户端
```
<pre class="prettyprint">http://osxfenew.demo.opensns.cn/#/autoLogin?&user_token=14359234985&token=dsfdlsjglfdsgjfkdsgfhsd&endtimestamp=1520559858&appKey=testappKey&sign=49b12bc5579a2a2a4652a68cd53c1e5e&redirect=https%3a%2f%2fosxfenew.demo.opensns.cn%2f%23%2fpackageA%2fforum-detail%2fnormal%3ffid%3d44
```
##### Step4.开发者客户端webview访问免登陆URL进入OSX短说系统:
##### Step5.OSX短说前端判断当前user\_token参数,如果值为“not\_login”,则清除前端登录标识,然后直接执行Step9;
##### Step6.OSX短说前端调用OSX短说后端接口登录用户;
##### Step7.OSX短说后端登录接口访问【开发者服务端-“用户信息获取接口”】获取用户信息,用于初始化或覆盖OSX短说服务端用户信息,并将OSX短说用户唯一标识返回给OSX短说前端(可能是登录失败标识)
##### Step8.如OSX后端接口返回登录成功标识,则OSX短说前端替换存储用户唯一标识;否则,清除前端登录标识
##### Step9.OSX短说前端根据免登陆URL中的redirect跳转对应页面(默认跳转到首页)
####
#### 【特别提醒】
免登陆URL生成规则:[http://oa.xiangtian.ren/index.php?mod=corpus&op=list&cid=58#fid\_605](http://oa.xiangtian.ren/index.php?mod=corpus&op=list&cid=58#fid_605)
用户信息获取接口规范:[http://oa.xiangtian.ren/index.php?mod=corpus&op=list&cid=58#fid\_604](http://oa.xiangtian.ren/index.php?mod=corpus&op=list&cid=58#fid_604)
### 6.未登录用户访问
#### 1. 使用场景
如果开发者想让用户在未登录情况下可以访问短说OSX,在有点赞、发帖、评论、关注等需求时再让用户登录,从而减轻用户登录步骤,提升OSX帖子、内容曝光度。针对这种情形,OSX短说支持游客身份登录。 实现逻辑是在生成免登陆地址时候user\_token参数设置成 “not\_login”,这样定义的用户访问OSX短说时,我们将其标记为未登录用户。
#### 2. 使用方式
用户在游客访问模式下点赞、发帖、评论、关注等时候,OSX短说会调用开发者提供的登录页面的链接地址让用户进行登录操作。 详见 下文:第7和第8点——游客用户唤起登录
## 7.开发者客户端内嵌OSX短说,游客用户访问及唤起登录流程详解
![](https://img.kancloud.cn/e6/f8/e6f86a5ddb3d00bdeb687a958d92df07_1002x1086.png "blob.png")
## Step1.按照*“免密登录流程”生成游客访问免登陆url*,进行游客访问OSX短说
##### Step2.配置用户登录页面的链接地址
##### 登录页面的链接地址示例:https://demo.opensns.cn/m/index.php?s=/ucenter/index/index.html
![](https://img.kancloud.cn/68/5c/685c7bc0327eb3ed3e49db0326ff8a17_1141x828.png "blob.png")
##### Step3.用户触发点赞、评论等行为时,OSX系统会跳转开发者平台登录页面。
提示:跳转链接中会夹带dbredirect参数,用于登陆完成后会跳到操作界面
```
<pre class="prettyprint">https://demo.opensns.cn/m/index.php?s=/ucenter/index/index.html&dbredirect=https%3a%2f%2fosxfenew.demo.opensns.cn%2f%23%2fpackageA%2fforum-detail%2fnormal%3ffid%3d44
```
##### 用户在开发者平台进行注册登录
##### Step4.登录完成后,开发者按照*“免密登录流程执行后面步骤”*
## 8.微信浏览器游客用户访问OSX短说及唤起登录流程详解
![](https://img.kancloud.cn/bb/2d/bb2dd070f23a34b3d8dc6cdf2a331e47_1005x784.png "blob.png")
##### Step1.配置用户登录页面的链接地址
##### 登录页面的链接地址示例:https://demo.opensns.cn/m/index.php?s=/ucenter/index/index.html
![](https://img.kancloud.cn/68/5c/685c7bc0327eb3ed3e49db0326ff8a17_1141x828.png "blob.png")
##### Step2.微信浏览器游客访问osx短说客户端并触发点赞、评论等行为时,OSX系统会跳转开发者平台登录页面。
提示:跳转链接中会夹带dbredirect参数,用于登陆完成后会跳到操作界面
```
<pre class="prettyprint">https://demo.opensns.cn/m/index.php?s=/ucenter/index/index.html&dbredirect=https%3a%2f%2fosxfenew.demo.opensns.cn%2f%23%2fpackageA%2fforum-detail%2fnormal%3ffid%3d44
```
##### 用户在开发者平台进行注册登录
##### Step3.登录完成后,开发者按照*“免密登录流程执行后面步骤”*