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

从Spring Boot为angular应用程序生成jwt令牌

章绪
2023-03-14
@Override
public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response)
            throws AuthenticationException {

try {

~~// 1. Get credentials from request
~~UserCredentials creds = new ~~ObjectMapper().readValue(request.getInputStream(), ~~UserCredentials.class);

// 2. Create auth object (contains credentials) which will be used by auth manager
~~UsernamePasswordAuthenticationToken authToken = new UsernamePasswordAuthenticationToken(creds.getUsername(),creds.getPassword(), Collections.emptyList());

// 3. Authentication manager authenticate the user, and use ~~UserDetialsServiceImpl::loadUserByUsername() method to load the user.
    return authManager.authenticate(authToken);

~~} catch (IOException e) {
~~~~~~throw new RuntimeException(e);
 }
}
@PostMapping("/login")
public void method(@RequestBody MyUser myUser){
// perform authentication and issue token for my front app
}

共有1个答案

闾丘高峰
2023-03-14

如果你遵循下面的建议会更好。

1)发出令牌--它应该在过滤器级别之后完成,我的意思是,在为该用户发出令牌之前,您应该验证您的HTTP请求和数据(密码和用户ID)的所有内容,在过滤器级别进行验证是违反适当的设计模式的。

2)验证--您可以在过滤器级别本身进行验证。它还可以帮助您避免在每个控制器方法或额外注释中单独编写验证逻辑。

 类似资料:
  • 我在验证用户时遇到问题。登录工作正常,我从API收到一个令牌。我将其保存在Angular应用程序中的JwtTokenService中,在执行请求(例如删除)时,我添加了带有值“Bearer token”的“Authorization”头,就像我之前在PostMan中所做的那样。客户要求: 我得到302状态代码和重定向到帐户/登录,即使我没有这样的溃败 控制台错误: CORS策略阻止了从https:

  • Angular and SpringBoot both have way too much of magic, if you are one who like to be in controll of their code, then check > out my project on pure Java 11 (With Modules), Jersey and Vue.JS for UIWeb

  • 我们正在使用Spring引导作为后端,仅为auth和生成jwt令牌的其余部分在hasura中处理。 我面临正确生成JWT的问题。 这是生成jwt令牌作为 但它hasura返回无效的签名。在哪里作为在节点 jwt从节点 使用相同的密钥和算法工作得非常好。对于节点,我使用了jsonwebtoken库。

  • 我有一个springboot应用程序,它根据LDAP验证身份验证。我通过邮递员测试了它,它工作得很好。我扩展了WebSecurityConfigurerAdapter以根据LDAP验证登录凭据。这是工作很好,没有任何问题。我有一个angular前端,我调用/login,并将用户名和密码发送到它。它没有工作,我得到一个CORs错误。我将下面的代码添加到application.java中,我再也看不到

  • 我在Azure Portal上创建了一个多租户应用程序,并发送请求以获取具有应用程序客户端Id的令牌。我正在使用以下URL在Microsoft Azure AD上获取令牌 https://login.microsoftonline.com/common/oauth2/v2.0/authorize 发送参数为client_id={clientId}的获取请求 但是,它在给定的回调url上返回acce