smart-signature / MATATAKI_FE_Mobile

瞬MATATAKI frontend
https://www.matataki.io/
GNU Affero General Public License v3.0
27 stars 12 forks source link

【全局登录】显示“登录状态”下切换页面时多次弹出输入密码提示登录 #335

Closed ygllxj2113 closed 5 years ago

ygllxj2113 commented 5 years ago

描述这个问题

已下三种情况,用户已登录,未进行交互操作,被要求输入密码。

1、手机钱包进入,首页显示登录状态,只是点进文章浏览文章,会立即弹出输入密码~

2、手机或电脑已经登陆,并且输入密码完成赞赏之后,还会立即弹出一次需要输入密码的账号授权。

3、电脑写完文章,已经输入密码发布之后,还会弹出一次需要输入密码的账号授权。

预期结果

1、自动抓取账号信息,在没有其他操作的情况下,不要立即弹出输入密码框

2、完成赞赏之后,不要立即弹出输入密码框。

3、发布完文章之后,不要立即再弹出一遍输入密码框。

备注

推测本issue与#215,#239,#268 等有紧密联系,可能是为了解决用户信息创建的问题而引发的bug。

Linklinkguan commented 5 years ago

麻烦描述问题的时候把语句梳理通常,全局无格式无标点的,还有一堆病句要怎么看?

yukiexe commented 5 years ago

内容分页為文章詳情頁?

yukiexe commented 5 years ago

取得 access token 時會需要用戶確認 以下功能需要取得一次 access token 為了讓後端認證是本帳號發送的。 access token 取得後會存起來快取,有效期好像7天 但,換了帳號 access token 是要重取的

所以打開文章會要一次 access token 是因為要"增加該文章閱讀計數" 理論上,這次拿完之後呢,同帳號發送 comment 時不會再取

另外,發送文章時會需要用戶額外簽名一次,這是剛開始就有的。 因為調的後端api 是最早期的,所以傳送簽名的方式跟上面那些功能都是不一樣的,沒看到後端改文檔 這部分分開來處裡,看能不能整合進新的 access token 流程。

yukiexe commented 5 years ago

@AkemiKusane @ganjingcun 為什麼 addReadAmount 需要 access token ?

@AkemiKusane accessBackend 的設計在流程上是有問題的,在發送前才處理 access token ,那會發生送到後端被拒絕或 token 已過期了還要跟用戶要一次確認,像是在 sendComment 上,錢都轉了,這時候用戶按了拒絕,不就 gg 了?請修正

yukiexe commented 5 years ago

再來講講錢包的故事: 我們都知道 scatter 其實是一個多個錢包能共用的 api 的,那我今天做了一個假的錢包,每次都報別人的 username,那前端是不能憑抓到的 username 就認為這個用戶就是擁有此帳號私 key的。 那要怎麼確認到底是不是這個人呢?在發送例如轉帳之前會有個確認,確認利用私 key會生成簽名並轉發給區塊鍊,讓區塊鍊確認是此帳號擁有者。

那後端呢?一樣道理,需要先生成一個利用私 key產生的簽名送到後端,後端返回一個 access token ,後端藉此認證擁有 access token 就是有 私 key 的此帳號擁有者。

yukiexe commented 5 years ago

取得用戶的資料例如資產明細,顯然是需要 access token 的 但是,個別用戶的粉絲數應該是不需要的 access token 的 但,目前取得個別用戶的粉絲數是需要 access token 的,邏輯很奇怪 @AkemiKusane 請跟 @ganjingcun 協調該如何處理 如果是請求方式錯誤,請跟相關功能開發人員討論

yukiexe commented 5 years ago

dapp 自動登錄不等於你就授權他拿著足以代表你的簽名隨便發轉帳的,本來就是需要再一次確認。 首頁或是自動登錄並沒有拿簽名授權,按下按鈕並沒有跳確認對吧? 那只是一個連上錢包的並抓取一個錢包資料的按鈕。 照前面所說,這個階段並不能驗證你是此帳號的私 key 擁有者

yukiexe commented 5 years ago

@lychees 其他人打不出這些話的,呵呵

yukiexe commented 5 years ago

為什麼首頁的登陸這麼迷惑人呢?

  1. 後端要求 access token 是後來才加的前端需求,所以按鈕是先設計了
  2. 產品並不清楚上面的錢包原理,所以連帶 UI 更不可能考慮這樣的現況
  3. 產品沒要求,前端也只能照之前的 dapp 道理去設計,轉帳前會跳確認很正常啊。 這個項目一個功能(例如讚賞)需要發送到兩個後端(區塊鍊與後端)需要兩個簽名也就是兩次的確認也很正常啊?怎麼會是 bug ?
jc1991x commented 5 years ago

带 access token 是为了让服务端知道你是谁。 前端的处理方式,可以参考tp的im聊天。第一次使用的时候,提示需要签名 以验证身份。取得access token 后,在有效期内,就不需要在进行验证身份的事了。

发布文章,是对文章内容签名,和这个身份验证还是不太一样的,所以不能整合一起。

yukiexe commented 5 years ago

1、首页显示登录状态,但是点进内容分页,还弹出账号授权页面,让我输入一遍密码。

這個解說了,應該是文章頁需要記錄閱讀計數的那次

2、完成赞赏之后,还会弹出一次需要输入密码的账号授权。

這個表達時間點不明確,是彈出了赞赏成功還是沒有還是失敗之後?

3、写完文章,已经发布之后,还会弹出一次需要输入密码的账号授权。

應該是跳轉文章頁後需要記錄閱讀計數的那次,跟 1. 同理 請詳述時間點,需要複查

aDappDeveloper commented 5 years ago

感觉是这个issue的描述问题,给大家造成了困惑。这个issue主要是去解决以下三种情况下的非必要弹窗:

1、手机钱包进入,首页显示登录状态,只是浏览页面,会弹出输入密码~这很奇怪

2、已经登陆,并且输入密码完成赞赏之后,还会立即弹出一次需要输入密码的账号授权。

3、登录之后,写完文章,已经输入密码发布之后,还会弹出一次需要输入密码的账号授权。

其中 2 和 3 是刚刚输完密码,没有新的操作,会被弹输入密码窗口

aDappDeveloper commented 5 years ago

其中 2 和 3 是刚刚输完密码,赞赏 / 发布成功之后,立即弹出输入密码窗口。

yukiexe commented 5 years ago

@xiaotiandada // 手动添加一个赞赏 這個改成拿 sendComment 的回傳值去加,請跟 @ganjingcun 協調回傳值設計 不要直接加一個幻影

Linklinkguan commented 5 years ago

340

well done.测试环境里面没有测试出异常。等待后续补充测试信息