当前位置: 首页 > 知识库问答 >
问题:

如何在Angular-Spring Boot-Auth0中获取电子邮件声明

田兴朝
2023-03-14

我有一个Spring boot应用程序,具有与Auth0集成的角度前端。保安工作正常。但我想在spring端获得用户电子邮件,

我在endpoint中添加了以下代码

@GetMapping(value = "/private")
public Message privateEndpoint(@Authenticathtml" target="_blank">ionPrincipal Jwt jwt) {
    Map<String, Object> claims = jwt.getClaims();
    for (Object key: claims.keySet()) {
        System.out.println("key: and value: "+ key.toString());// + "..."+  claims.get(key).asString());
    }

场景1:客户是邮递员。

范围=openid配置文件电子邮件

访问令牌url=https://{auth0_domain}}/oauth/token

日志:

key: and value: sub
key: and value: aud
key: and value: azp
key: and value: scope
key: and value: iss
key: and value: exp
key: and value: iat

情景2:

从角度进行测试会在第行给出空指针(jwt)

System.out.println("Headers:\n"jwt.getHeaders());

这件事似乎少了点什么。不知道是什么。

一些角代码:

  responseType: 'token id_token',
    audience: 'http://localhost:8080',
    redirectUri: 'http://localhost:4200/callback',
    scope: 'openid email view:some view:another'



  private setSession(authResult): void {
    // Set the time that the access token will expire at 
    const expiresAt = JSON.stringify((authResult.expiresIn * 1000) + new Date().getTime());
    localStorage.setItem('access_token', authResult.accessToken);
    localStorage.setItem('id_token', authResult.idToken);
    localStorage.setItem('expires_at', expiresAt);
  }

问题:如何在spring端记录电子邮件地址?为什么角度请求给出空指针?

谢谢

编辑:

接着是下面的文章

https://auth0.com/docs/libraries/auth0-angular-spa

但是我在识别我的uri时遇到了问题

  // Matching on HTTP method
  {
    uri: '/api/orders',
    httpMethod: 'post',
    tokenOptions: {
      audience: 'http://my-api/',
      scope: 'write:orders',
    },
  },

流程:按钮具有[routerLink]=“['/todo',fid,sid]

应用程序路由已更改

{
        path: 'todo/:sId/:tId', // child route path cid/:sid/:tid
        component: ThatComponent, // child route component that the router renders
        canActivate: [AuthGuard]
      },

应用程序。单元

 httpInterceptor: {
    allowedList: [                 
                   {
                     uri: '/*',
                     tokenOptions: {
                       audience: 'http://localhost:8080',
                       scope: 'view:account',
                     },
                   },

    ],

我使用proxy-config将任何/server的角度endpoint(4200)映射到spring(8080),即返回该值。http。获取(“/server/api/v1/…”)

因此无法识别正确的uri(而不是uri:“/*”,)

任何想法?

共有1个答案

扈阳辉
2023-03-14

好的,找到问题了。http.get有遗留模型(删除了它)

{headers: new HttpHeaders().set('Authorization', 'Bearer ' + token)}

uri现在访问uri:'/server/api/...*'匹配的url在调用this.http.get(url)

 类似资料:
  • 问题内容: 我的Android应用程序中有一个Facebook登录选项,但尝试获取用户的电子邮件失败。在用户登录并添加到Parse.com用户表(具有有效的访问令牌)之后,我请求Facebook用户信息,但仅获取其ID和名称(即使电子邮件已设置为权限之一) )。 这是我的代码(在我的按钮的OnClickListener内部): 问题答案: 我想这与Graph API v2.4中的更改有关,该更改使

  • 我一直试图获取电子邮件正文与imap_fetchbody($stream,$msgno,$选项),但没有成功。 然后我尝试使用imap_fetchstructure($stream,$msgno),并使用各自的子类型手动解码每种类型,如:- 对于前两个,我可以用这样的东西来解码 但说到混合,我要么不知道,要么我该怎么办,要么我在哪里犯错。

  • 在上一章中,我们学习了如何查看电子邮件。 现在让我们看看如何获​​取每封电子邮件并阅读其内容。 让我们编写一个Java类FetchingEmail ,它将读取以下类型的电子邮件: 简单邮件 电子邮件附件 使用内联图片发送电子邮件 代码中遵循的基本步骤如下: 获取Session对象。 创建POP3商店对象并连接到商店。 创建文件夹对象并在邮箱中打开相应的文件夹。 检索邮件。 分别关闭文件夹和存储对象

  • 问题内容: 我想从IMAP4服务器获取整个邮件。在python文档中,如果发现此代码有效: 我想知道我是否总是可以相信data [0] [1]返回消息的主体。当我运行“ RFC822.SIZE”时,我只有一个字符串而不是一个元组。 我已经浏览了rfc1730,但无法弄清楚“ RFC822”的正确响应结构。也很难从imaplib文档中得知获取结果的结构。 这是我在获取时得到的: 但是当我获取时,我得

  • 我使用的MVC5客户端通过“UseOpenIdConnectUthEntication”进行安全保护,并在Claims对象中获取所有用户的详细信息,该客户端通过“承载”认证令牌调用WAAD安全Web Api。 我需要在web API中获取用户名或电子邮件。我试过不同的选择,但都没用。 我在identity.name中得到null,我得到的其他属性如nameidentifier、objectiden

  • 问题内容: 我正在为一个朋友的婚礼编写一个照相馆网络应用程序,他们希望照相馆供客人提交当天拍摄的数码照片。 在评估了所有选项之后,我认为对于用户来说,最简单的事情是让他们使用熟悉的界面(他们的电子邮件),并让他们将图片作为附件发送。 我已经创建了一个邮箱,但是现在我需要连接并检索这些附件以进行自动处理,以添加到图库系统中。但是如何?您是否看到过这样做的任何教程或预制类? 问题答案: 您正在使用什么