Angular:如何获取Google访问令牌 [英] Angular : how can I get Google access token
本文介绍了Angular:如何获取Google访问令牌的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用Angular 4获取访问令牌。
当用户使用Google登录时,我会获得以下数据。
I am trying to get Access token using Angular 4. When the user logIn using Google I get the following Data.
authToken // *
id
email
.
.
.
name
-
我认为变量
authToken
不是访问令牌
,因为当我尝试使用以下代码(春季启动)进行验证时,I think that the variable
authToken
is not theaccess token
because when I try to verify it using the following code ( spring boot),GoogleIdTokenVerifier verifier = new GoogleIdTokenVerifier.Builder(new NetHttpTransport(), JacksonFactory.getDefaultInstance()) .setAudience(Collections.singletonList( "ID_CLIENT") .build(); try { GoogleIdToken idToken = verifier.verify(accessToken); if (idToken != null) { Payload payload = idToken.getPayload(); String userId = payload.getSubject(); System.out.println("User ID: " + userId); String email = payload.getEmail(); boolean emailVerified = Boolean.valueOf(payload.getEmailVerified()); String name = (String) payload.get("name"); String pictureUrl = (String) payload.get("picture"); String locale = (String) payload.get("locale"); String familyName = (String) payload.get("family_name"); String givenName = (String) payload.get("given_name"); System.out.println(accessToken); return accessToken; } else { System.out.println("null"); return "**this is not a valid Token**"; } } catch (IllegalArgumentException e) { return "IllegalArgumentException"; }
返回
IllegalArgumentException
所以我如何使用 Google访问令牌 Angular
推荐答案
我正在使用Angular 4,因此那里没有令牌变量,与版本5不同和6,
,所以我遵循从此得到的答案I am using Angular 4, so there is no token variable there, unlike version 5 and 6, so I follow answer from this
I solved this by going into node_modules/angular4-social-login and making a few changes. First go into /entities and change the SocialUser model and include "token: string;" like so: export declare class SocialUser { provider: string; id: string; email: string; name: string; photoUrl: string; token: string; } Go to angular4-social-login.umd.js and for every function of the GoogleLoginProvider where the SocialUser object is resolved - find "resolve(user)" - add the line: user.token = _this.auth2.currentUser.get().getAuthResponse().id_token Your authService should now return the idToken for the user as user.token. (3) - for Facebook accessToken, you follow similiar logic. Go to angular4-social-login.umd.js; and for every FacebookLoginProvider function that resolves the user (again search for "resolve(user)"): Under FB.login(function (response) { //get the token here var accessToken = response.authResponse.accessToken ...} (4) Where the user is being modified, simply add user.token = accessToken before resolving ✨ ✨ ✨
---------------- -------->令牌和身份验证令牌不同
这篇关于Angular:如何获取Google访问令牌的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文