OAuth2.0からのアクセスユーザーの電子メールへ?

ダニエルMartenssonから:

私はOAuth2.0からユーザーのメールアドレスでログインしてアクセスします。ただ、正しいユーザがログインする権限を持っていることを確認します。

それから私はこのコードを使用する必要があります。

@RequestMapping("/user")
public Principal user(Principal principal) {
    return principal;
}

これは、JavaScriptから呼び出されます。

<div>
     Logged in as: <span id="user"></span>
</div>

$.get("/user", function(data) { // Call Java code with GET request
   $("#user").html(data.userAuthentication.details.name); // Set id=user to the name of the user
});

しかし、私は、Javaコードではなく、JavaScriptコードからこれをアクセスしたいです。どうやってやるの?

rieckpil:

あなたは春のセキュリティのデフォルトを使用する場合は、キャスト可能PrincipalUserDetailsオブジェクトや、あなたのユースケースのために必要なすべてのものへのアクセス権を持っています:

@GetMapping("/user")
public Principal user(Principal principal) {

  UserDetails userDetails = (UserDetails) principal;
  System.out.println(userDetails.getUsername());
  System.out.println(userDetails.getPassword());
  System.out.println(userDetails.getAuthorities());

  // do whatever you want ... 

  return principal;
}

UPDATE:あなたはのOAuth2を使用して説明したように、あなたが認証されたのOAuth2プリンシパルを注入するために、次の操作を行うことができます。

@GetMapping("/user")
public Principal user(@AuthenticationPrincipal OAuth2User principal) {

  // do whatever you want ... 

  return principal;
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=318888&siteId=1