從功能看產(chǎn)品邏輯系列(一)該如何思考手勢密碼?
![](http://image.woshipm.com/wp-files/img/106.jpg)
最近在負(fù)責(zé)一款app的功能迭代,在此版本里我加入了手勢密碼功能。我一直在思考這樣一個(gè)問題,我們的產(chǎn)品已經(jīng)有了賬號(hào)密碼功能,到底還需不需要加手勢密碼了?
我非常清楚要不要加一個(gè)功能,不是我說了算,不是身邊的同事說了算,只有用戶說了才算。我一直問自己,你做了用戶調(diào)研了么?你有數(shù)據(jù)分析么?
很遺憾,這些我都沒有做。我們的產(chǎn)品對(duì)象是成千上萬個(gè)商戶,每個(gè)商戶包括幾個(gè)門店,幾十個(gè)門店的都有,每個(gè)門店又包括不等的店長、收銀員,所以說產(chǎn)品使用者的數(shù)量雖然比上不足,但比下有余。有這么多的用戶,我為什么不利用這些去做個(gè)調(diào)研再來決定做不做呢?
也許我會(huì)說,喬布斯在設(shè)計(jì)iPhone4的時(shí)候還會(huì)去問用戶需要怎么做么?張小龍?jiān)谠O(shè)計(jì)微信的時(shí)候會(huì)去調(diào)研用戶需要及時(shí)通訊,需要語音對(duì)講,需要搖一搖嗎?
But,兩位在產(chǎn)品界被譽(yù)為神話式的人物,是不可能被輕易模仿出來的。我要說的是一個(gè)共通性,產(chǎn)品人的產(chǎn)品論。
產(chǎn)品人的產(chǎn)品論
每個(gè)產(chǎn)品人都有一套他自己的產(chǎn)品論。這不是看來的,學(xué)來的,而是切切實(shí)實(shí)從做產(chǎn)品的過程中積累來的。作為一個(gè)pm,你有一套產(chǎn)品論,我有一套產(chǎn)品論,他有一套產(chǎn)品論。
我以為,一個(gè)功能是否需要調(diào)研須經(jīng)過深思熟慮才能做決定。不是每立項(xiàng)一個(gè)功能,就是去做調(diào)研,這只會(huì)白白浪費(fèi)時(shí)間。也許你會(huì)持不同意見,可當(dāng)你發(fā)現(xiàn)調(diào)研得來的數(shù)據(jù)雖然時(shí)常幫助了你,但有時(shí)卻僅僅只是驗(yàn)證了當(dāng)初的想法而已的時(shí)候,你該去總結(jié)思考一下了,這個(gè)數(shù)據(jù)結(jié)果對(duì)我來說真的需要花費(fèi)這么多精力才能明確么。
通常來說,我不想將時(shí)間常浪費(fèi)在一些不必要的數(shù)據(jù)問題上面,畢竟,我每一天都在想產(chǎn)品,一整天都在想產(chǎn)品,睡前在想,醒來也在想,不是刻意的去想,而是不由自主的去想,想多了,腦袋也累。我時(shí)不時(shí)的會(huì)希望某一個(gè)時(shí)間,給自己放一個(gè)假,啥也不想,去旅游,去放松,這樣當(dāng)我再回來看我的產(chǎn)品的時(shí)候,可能思考的結(jié)果又不一樣了。這讓我想起了曾經(jīng)上學(xué)的時(shí)候?qū)懽魑?,可能?dāng)時(shí)會(huì)覺得寫的很好,可一旦過了一個(gè)月、兩個(gè)月再回頭看的時(shí)候,會(huì)突然覺得寫的很搞笑。人常常就是這樣,某個(gè)時(shí)間段的思維被固化了,常需要在以后的某一天才會(huì)開竅。
廢話說了這么多,該回到正題了。
手勢密碼的使用場景
好了,我想說的是我們現(xiàn)在做的是一款收款工具,這其中當(dāng)然得涉及到跟錢有關(guān)的事情,為了商戶的賬戶安全,我們的做法是用戶每次打開app,都需要輸入賬號(hào)密碼才能登錄。試想這樣幾個(gè)場景:
場景一:
我是商家,現(xiàn)在我的pos機(jī)系統(tǒng)(這個(gè)是用來配合pc端的收款系統(tǒng)使用)出故障了,怎么辦,這時(shí)我需要掏出我的手機(jī),打開app,輸入密碼,收款。收完了,關(guān)閉手機(jī)。顧客這么多,都在等著付款,我還需要輸入復(fù)雜的密碼,進(jìn)入程序也太慢了吧。
場景二:
收完款了,我退出了程序。過了一會(huì),新來了一位顧客,我打開程序繼續(xù)收款,啊~我又需要輸入密碼了,好麻煩啊。
場景三:
一天工作結(jié)束了,看看我今天的收單數(shù)據(jù)吧。什么東西啊,我就是想看看收單數(shù)據(jù),又要輸入密碼。
三個(gè)場景,我們總結(jié)出來共同的缺點(diǎn):慢、麻煩。
慢,我怎么解決呢。以下是我的大致想法。
A: 用手勢密碼吧,至少速度上比輸入密碼快。
B: 這樣也太草率了吧,有沒有更快的方法?
A: 那就不使用密碼,直接進(jìn)入app。
B: 這樣是不是不太安全啊,這可是涉及到商戶的錢啊
A: 怕啥,支付寶不是也涉及到錢嗎,不還是可以直接進(jìn)入么。你想想他們是怎么解決這個(gè)問題的,他們是在涉及到錢的最后一個(gè)環(huán)節(jié)才添加密碼功能
B: 對(duì)哦,我也許也可以借鑒一下。我再想想,啊~不行,支付寶和我們的產(chǎn)品面向的用戶群及目的不一樣啊。支付寶雖然涉及到錢,然而卻不是一款使用頻次很高的收款軟件啊。如果我們的產(chǎn)品總是在最后一步開啟密碼功能,在這么高的使用頻率下,效率不是提高,而是成倍的降低。
A: 是啊,還是放在第一步進(jìn)入時(shí)開啟密碼吧,這樣更合理。還有沒有其他更快的解決辦法呢?
B: 額,指紋解鎖?好像還不太廣泛適用。還有別的什么?算了,想不出來…
麻煩,怎么解決呢?同理了。
好了,既然初步定了這么個(gè)功能,是該考慮怎么去實(shí)現(xiàn)了。
手勢密碼存在本地還是存在服務(wù)器呢?
存在本地?當(dāng)然可以,給它二次加密。只是我通過手勢密碼登錄后,我的數(shù)據(jù)怎么得來呢,畢竟我沒有登錄賬號(hào)密碼啊。所以,咋辦呢。讓我的賬號(hào)密碼也緩存在本地,同時(shí)設(shè)置我的清除緩存功能不去干掉它,這樣不就可以了嗎。不安全?那再來個(gè)二次加密吧。
存服務(wù)器,當(dāng)然也可以。我們讓一個(gè)賬號(hào)匹配兩個(gè)密碼唄,通過緩存我的賬號(hào),手勢密碼登錄,我也可以照樣獲得我的賬號(hào)數(shù)據(jù),同時(shí)還不用將我的密碼存在本地。
我使用的方法是存服務(wù)器,畢竟如果將兩個(gè)密碼都換存在本地,我還是覺得不安全。所以在這里我也只講述客戶端與服務(wù)器的邏輯交互了,存在本地的話其實(shí)也同理,只不過是客戶端直接去做判斷。
手勢密碼涉及到哪幾個(gè)環(huán)節(jié)?
- 設(shè)置手勢密碼
- 修改手勢密碼
- 清空手勢密碼
既然知道了這幾個(gè)環(huán)節(jié),我們就該整理出實(shí)現(xiàn)這幾個(gè)環(huán)節(jié)包括的內(nèi)容出來。
- 設(shè)置密碼 = 添加手勢密碼
- 修改手勢密碼 = 匹配手勢密碼 + 刪除手勢密碼 + 添加手勢密碼
- 清空手勢密碼 = 刪除手勢密碼
所以,無非就是涉及到這三種形式
- Type1 添加
- Type2 刪除
- Type3 匹配
常見流程:
客戶端與服務(wù)器怎么去做交互?
- 設(shè)置手勢密碼。用戶先繪制第一遍手勢密碼,然后再繪制第二遍手勢密碼確認(rèn),這時(shí)客戶端會(huì)判斷第二次輸入的是否正確,如果錯(cuò)誤,清空數(shù)值,要求用戶重新操作。如果正確,客戶端通知服務(wù)器此時(shí)進(jìn)行的是type1添加密碼,同時(shí)將用戶設(shè)置的各個(gè)點(diǎn)的數(shù)據(jù)傳給服務(wù)器保存下來。這樣設(shè)置操作就算完成了
- 修改手勢密碼。用戶首先繪制原手勢密碼,客戶端通知服務(wù)器此時(shí)進(jìn)行的是type3匹配,同時(shí)將數(shù)據(jù)傳給服務(wù)器比對(duì),輸入正確的話,服務(wù)器返回成功消息,于是用戶有權(quán)限開始進(jìn)行下一步操作了,下一步操作即為添加密碼。
- 當(dāng)用戶點(diǎn)擊清空手勢密碼??蛻舳朔祷仡愋蛅ype3給服務(wù)器,告訴服務(wù)器我現(xiàn)在是在進(jìn)行清空密碼操作,于是服務(wù)器收到請(qǐng)求后,直接將手勢密碼清空就完成了。
嗯,手勢密碼功能總算是做出來了,我是不是還應(yīng)該判斷一下我打開app時(shí)彈出來的界面是手勢密碼登錄界面還是賬號(hào)密碼登錄界面。
怎么做,我打開app時(shí)將賬號(hào)傳給服務(wù)器,讓服務(wù)器判斷一下此賬號(hào)是否存在手勢密碼,如果存在,那就顯示手勢密碼界面,如果不存在,那就顯示賬號(hào)密碼界面。如果手機(jī)端不存在賬號(hào)信息,那就直接賬號(hào)密碼登錄。
總算搞定了,那還有沒有考慮沒到位的地方?
對(duì)了,我應(yīng)該加一個(gè)次數(shù)限制吧。比如說,輸入6次,就不準(zhǔn)再輸入了,只能使用賬戶密碼登錄。
為什么要加入次數(shù)限制這一條件?
這樣想,如果允許用戶無限次輸入,那對(duì)于居心不良的人來說,是不是就可以隨意破解了。也許你會(huì)說,設(shè)置的種類這么多,破解那得多難啊。然而,對(duì)于程序來說,這種密碼的破解卻很簡單,所以出于安全性考慮,為了杜絕一切可能破解的因素,我們還是有必要加入次數(shù)限制。
因此,我們?cè)趺慈プ?。讓服?wù)器去判斷次數(shù),或者直接在本地判斷次數(shù),都是可以的,輸入錯(cuò)誤6次,即清空密碼。在這里,我要說明的是,我為什么做直接清空而不是限制用戶在多長時(shí)間內(nèi)不準(zhǔn)輸入,每個(gè)人的思考點(diǎn)都會(huì)不同,也沒有誰一定對(duì)誰一定錯(cuò),存在即合理。
作者:Cw(微信號(hào):小七的road)
本文由 @Cw 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
為什么不是限制用戶在多長時(shí)間內(nèi)不準(zhǔn)輸入?而是直接清空密碼
怎么會(huì)有清空手勢密碼,設(shè)置里面不是有個(gè)關(guān)閉手勢密碼嗎?直接關(guān)掉就可以了
營業(yè)員收銀為什么要密碼呢?退款才需要把?進(jìn)賬也需要么。
是的,app里面其實(shí)涉及到好幾個(gè)關(guān)于商戶利益的功能,因?yàn)橹攸c(diǎn)不想講為什么密碼,所以并沒有去細(xì)說
修改手勢密碼有沒有必要要加一種使用登陸密碼修改的方式,為了那些把手勢密碼也給忘了的用戶?
如果忘了手勢密碼,直接賬號(hào)密碼登錄,再點(diǎn)擊關(guān)閉清空密碼
如果六次密碼都是錯(cuò)的?后面是如何辦?
直接退出登錄,再用賬號(hào)密碼登錄,登陸后提示是否重新設(shè)置手勢密碼
為什么不是鎖定賬號(hào)要求驗(yàn)證,而是把密碼清除?
1 你的驗(yàn)證碼輸入多次都是錯(cuò)誤,默認(rèn)你已經(jīng)忘記驗(yàn)證碼了;2 如果你能通過普通登錄,登陸成功(本身登錄的行為就是驗(yàn)證是否是你本人操作),說明是你本人操作,提示重新設(shè)置驗(yàn)證碼就行
1 你的驗(yàn)證碼輸入多次都是錯(cuò)誤,默認(rèn)你已經(jīng)忘記驗(yàn)證碼了;2 如果你能通過普通登錄,登陸成功(本身登錄的行為就是驗(yàn)證是否是你本人操作),說明是你本人操作,提示重新設(shè)置驗(yàn)證碼就行。
貌似大家設(shè)計(jì)的流程都差不多,樓主好像忘了用戶主動(dòng)關(guān)閉和開啟手勢密碼的流程了!
沒有哦,我簡化了,關(guān)閉就是清空了,回到原始,在關(guān)閉的時(shí)候給予用戶提示
用戶想再次啟用的時(shí)候,就必須重新設(shè)置,關(guān)閉手勢密碼和清空收拾密碼還是有很大差別的吧
在客戶端請(qǐng)求清空手勢密碼時(shí),是不是要驗(yàn)證密碼先?
給予提示即可
沒聯(lián)網(wǎng)怎么辦
沒聯(lián)網(wǎng)沒數(shù)據(jù),提示沒聯(lián)網(wǎng)