我在angular2应用程序中使用Auth0,一旦用户登录auth0服务,就会发送一个包含用户个人资料信息的响应。
根据用户选择的登录方法,响应可以有许多不同的方式。我只是想在响应中拆分电子邮件地址。
这是典型的回应,
Object
clientID
:
"skdjcbjlwrjlw"
created_at
:
"2016-10-15T06:03:44.636Z"
email
:
"nick@example.com"
email_verified
:
true
family_name
:
"Walker"
gender
:
"male"
given_name
:
"Paul"
global_client_id
:
"ojwebcvjoweojewhc"
identities
:
Array[1]
locale
:
"en"
name
:
"Paul Walker"
nickname
:
"nick"
picture
:
"https://lh4.googleusercontent.com/photo.jpg"
updated_at
:
"2016-11-21T22:29:33.158Z"
user_id
:
"google-oauth2|102515181977826170152"
__proto__
:
Object
现在,当我收到该回复时,我将此电子邮件地址拆分为
我创建了一个用于保存电子邮件地址的课程
export class User {
constructor(
public email: string,
) { }
}
我实例化对象,
user: Object;
我将电子邮件从个人资料对象移至user
this.user = profile.email;
此时的问题是我需要电子邮件为JSON格式。所以我用,
var email = JSON.stringify(this.user);
但当我console.log(email);
时
我得到myemail@example.com而不是json。
所以,此时,
console.log(profile); // outputs json of whole profile
this.user = profile.email;
console.log(this.user); // outputs just the email address
var email = JSON.stringify(this.user);
console.log(email); // expects json gets email@example.com
我需要email
成为真正的json。我没有正确使用JSON.stringify(this.user);
吗?
答案 0 :(得分:0)
为了提高知名度,我将JB Nizet的评论作为社区维基回答。
第2步,没有实例化任何内容。它声明了一个Object类型的变量。
第3步,将profile.email
(可能是字符串)分配给该变量。如果user
应该是User
,则其类型应为User
,而不是Object
。而且你不应该为该变量分配一个字符串。要创建User
的实例,语法为new User(theEmail)
。