# 免登陸流程對接
## 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短說具體頁面的參數地址。
#### 交互流程

## 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.免密登錄流程詳解
**
##### Step1.開啟第三方平臺接入,同時配置用戶信息獲取接口到OSX短說后臺
### 用戶信息獲取接口示例:https://demo.opensns.cn/getuserinfo

##### 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短說,游客用戶訪問及喚起登錄流程詳解

## Step1.按照*“免密登錄流程”生成游客訪問免登陸url*,進行游客訪問OSX短說
##### Step2.配置用戶登錄頁面的鏈接地址
##### 登錄頁面的鏈接地址示例:https://demo.opensns.cn/m/index.php?s=/ucenter/index/index.html

##### 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短說及喚起登錄流程詳解

##### Step1.配置用戶登錄頁面的鏈接地址
##### 登錄頁面的鏈接地址示例:https://demo.opensns.cn/m/index.php?s=/ucenter/index/index.html

##### 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.登錄完成后,開發者按照*“免密登錄流程執行后面步驟”*