OKTA用戶認證不支持IOS13.X後採用WEB方式支持APP

一家密碼管理的獨角獸公司,據說還在謀求上市。竟然說要2020年2月份才會有可能支持IOS13.X的版本,那麼已經升級到13.X的IOS用戶怎麼辦?真是無語。。。

正好有個項目,用戶原本就採用了OKTA的密碼管理方式,怎麼辦?用戶也不知道到底是誰的問題,只能採用折中的方式。

我們採用的大概思路是利用OKTA的web方式接口,在IOS端用戶登陸的時候,通過服務器返回一個url,訪問OKTA的登陸網站,在OKTA網站裡輸入賬號密碼,隨後OKTA會callback給服務器參數,服務器把參數通過WEBVIEW送給IOS客戶端,完成登陸過程。

1.先建立基本的測試數據

登陸okta的網站

2.進入APPLICATION的界面,設置一些必要的參數如callback_url,logout_url等。其中需要得到該頁面中的clientId ,clientSecret值,需要在我們自己的服務器裡設置。

3.可以增加用戶,用作測試

基本的數據做好了,就要做服務器開發了。我們採用的是PHP的代碼

這裡大概介紹幾個主要方法:

1.生成獲取CODE的URL,返回給IOS客戶端,讓IOS客戶端建立一個WEBVIEW去訪問

2.當Okta接收到IOS客戶端發送的請求後,會返回參數給預先設置的callback,此時再調用認證方法,去獲取所需要的用戶信息,我們項目需要的是email

3.拿到參數後,進行自己平臺的業務即可。大功告成。

因為採用的是WEB的方式,那麼在OKTA的網站裡會保存著SESSION,如果你的IOS客戶端用戶LOGOUT了,再次登陸的時候,會造成直接登陸成功,而沒有輸入賬號密碼的情況。

我們在這個問題上,採用的方式是,讓IOS再次打開一個隱藏的WEBVIEW,訪問上面第一個方法裡返回的logout_url即可。

到此已經完美解決了。

等待2020年2月份支持IOS13.X的接口出現,就改回IOS專用接口。


分享到:


相關文章: