Android Google 原生登錄

前言:

之前寫過Android Facebook原生登錄黄选,想著既然Facebook登錄已經(jīng)寫了蝇摸,索性把Google 登錄也寫一下,做一下記錄办陷。

首先

要集成Google登錄前首先需要查閱官方文檔貌夕,當(dāng)然這個(gè)是需要自備梯子的。

  • 1民镜、查看官方demo
    如果你是第一次使用Google登錄啡专,那么,最簡單的方式當(dāng)然是查看官方文檔和官方demo了制圈。

    $ git clone https://github.com/googlesamples/google-services.git
    
  • 2们童、配置登錄需要的配置


    Google登錄配置.png

注意:Google登錄需要的客戶端ID是web端的ID

其次

  • 1、開始Google登錄的接入
    在app下的build.gradle的dependencies 節(jié)點(diǎn)下配置Google服務(wù)
dependencies {
implementation 'com.google.android.gms:play-services-auth:16.0.0'
}
  • 2鲸鹦、Google登錄方法的封裝
public class GoogleLoginManager {

private static final String TAG = GoogleLoginManager.class.getSimpleName();
 /**
  * 初始化登錄
  *@params contenxt 上下文
  *@params clientID Google配置分配的客戶端ID
  *@params selfRequestCode 自定義請(qǐng)求碼
  */
public static void initGoogle(Activity context, String clientID, int selfRequestCode) {
    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestIdToken(clientID)
            .requestEmail()
            .build();
    GoogleSignInClient mGoogleSignInClient = GoogleSignIn.getClient(context, gso);
    Intent signInIntent = mGoogleSignInClient.getSignInIntent();
    context.startActivityForResult(signInIntent, selfRequestCode);
}

   /**
  * 登錄回調(diào)
  *@params requestCode 對(duì)應(yīng)onActivityResult的 requestCode
  *@params data 對(duì)應(yīng)onActivityResult的 data
  *@params selfRequestCode 對(duì)應(yīng)上面初始化請(qǐng)求的自定義請(qǐng)求碼
  *@params mListener 登錄結(jié)果回調(diào)
  */
public static void onActivityResult(int requestCode, Intent data, int selfRequestCode,
                                    OnLoginSuccessListener mListener) {
    if (requestCode == selfRequestCode) {
        Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
        handleSignInResult( task, mListener);
    }
}


private static void handleSignInResult(@NonNull Task<GoogleSignInAccount> completedTask,
                                       OnLoginSuccessListener mListener) {
    try {
        GoogleSignInAccount account = completedTask.getResult(ApiException.class);
        String idToken = account.getIdToken();
        Log.e(TAG, idToken);
        mListener.onSuccessResult(idToken);
    } catch (ApiException e) {
        e.printStackTrace();
    }
}

/**
 * 退出登錄
 */
public static void GoogleSingOut(Context context, String clientID, final OnGoogleSignOutListener mListener) {
    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestIdToken(clientID)
            .requestEmail()
            .build();
    GoogleSignInClient mGoogleSignInClient = GoogleSignIn.getClient(context, gso);
    mGoogleSignInClient.signOut().addOnCompleteListener((Activity) context, new OnCompleteListener<Void>() {
        @Override
        public void onComplete(@NonNull Task<Void> task) {
            mListener.onSignOutSuccess();
        }
    });
  }

}


 /**
  * 退出登錄接口
  */
 public interface OnGoogleSignOutListener {

 void onSignOutSuccess();

 }
 /**
  * 登錄回調(diào)接口
  */
 public interface OnLoginSuccessListener {

 void onSuccessResult(String result);

 }

最后

好了慧库,上面就是Google登錄所需要的所有東西了。完整的登錄流程應(yīng)該是這樣的:從Google獲取idToken馋嗜,然后發(fā)送到自己的服務(wù)器齐板,在服務(wù)器驗(yàn)證通過后再回調(diào)給客戶端。

感想

最近一直在寫國外的項(xiàng)目嵌戈,接觸的都是英文文檔覆积,在此時(shí)才看到自己的英文水平是多么的差,沒事還是需要多看看英文的東西熟呛。提升下自己的英文水平宽档,以后看到英文文檔不至于太頭疼。如果想了解更多或者有什么不懂的地方庵朝,可以加群493180098吗冤。
嗯,下一篇可能會(huì)寫Google支付或者韓國的支付平臺(tái)OneStore支付

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末九府,一起剝皮案震驚了整個(gè)濱河市椎瘟,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌侄旬,老刑警劉巖肺蔚,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異儡羔,居然都是意外死亡宣羊,警方通過查閱死者的電腦和手機(jī)璧诵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來仇冯,“玉大人之宿,你說我怎么就攤上這事】良幔” “怎么了比被?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長泼舱。 經(jīng)常有香客問我等缀,道長,這世上最難降的妖魔是什么柠掂? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任项滑,我火速辦了婚禮依沮,結(jié)果婚禮上涯贞,老公的妹妹穿的比我還像新娘。我一直安慰自己危喉,他們只是感情好宋渔,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著辜限,像睡著了一般皇拣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上薄嫡,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天氧急,我揣著相機(jī)與錄音,去河邊找鬼毫深。 笑死吩坝,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的哑蔫。 我是一名探鬼主播钉寝,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼闸迷!你這毒婦竟也來了嵌纲?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤腥沽,失蹤者是張志新(化名)和其女友劉穎逮走,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體今阳,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡师溅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年邓嘹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片险胰。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡汹押,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出起便,到底是詐尸還是另有隱情棚贾,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布榆综,位于F島的核電站妙痹,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏鼻疮。R本人自食惡果不足惜怯伊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望判沟。 院中可真熱鬧耿芹,春花似錦、人聲如沸挪哄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽迹炼。三九已至砸彬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間斯入,已是汗流浹背砂碉。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留刻两,地道東北人增蹭。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像闹伪,于是被迫代替她去往敵國和親沪铭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 你是來我朋友圈里當(dāng)內(nèi)奸的嗎偏瓤? 你是來我朋友圈里當(dāng)內(nèi)奸嗎杀怠,當(dāng)Y發(fā)來這條消息的時(shí)候我著實(shí)震驚了一番,后面她補(bǔ)充到我朋友...
    二姑娘夢語閱讀 1,421評(píng)論 9 4
  • 又是凌晨1點(diǎn)半厅克,只有wl還在發(fā)微信跟我討論男同赔退,又開始變得感性和敏感。 這幾天什么都不順 喜歡的人拒絕了我 花唄的...
    小學(xué)生不讀書閱讀 130評(píng)論 0 0
  • 因?yàn)樽龇训木壒剩芏鄷r(shí)候就需要進(jìn)行尋找基因序列等信息硕旗,還可能要尋找同源的其他物種比如擬南芥的序列窗骑,或者從擬南芥來...
    lxmic閱讀 4,837評(píng)論 4 14