2015-03-27 27 views
5

Tôi muốn triển khai quản lý người dùng cục bộ cho ứng dụng của mình. cho back-end tôi sử dụng java spring REST.I không sử dụng dịch vụ quản lý người dùng đám mây như Auth0 hoặc UserApp. Bởi vì một số tính năng tôi muốn sử dụng phương pháp JWT để xác thực và ủy quyền người dùng, nhưng tôi không thấy làm thế nào tôi nên thực hiện nó trong Java và AngularJS?Cách triển khai thực hiện xác thực JWP của AngularJS cho API Spring REST của Java

Trả lời

11

Tôi đã nói về cách thêm xác thực với JWT vào ứng dụng AngularJS.

Bạn có thể nhìn thấy nó ở đây: https://www.youtube.com/watch?v=lDb_GANDR8U

Mã cho bài thuyết trình đó là ở đây: https://github.com/auth0/angularjs-jwt-authentication-tutorial

Trong ví dụ này, máy chủ là NodeJS. Nếu bạn cần Java, bạn có thể làm điều gì đó tương tự như https://github.com/auth0/spring-security-auth0/tree/master/examples/spring-boot-api-example. Ví dụ đó là dành cho Auth0, nhưng xác thực JWT cũng áp dụng cho trường hợp của bạn :), vì nó là chung.

Hãy cho tôi biết nếu điều này có ích.

Chúc mừng!

+0

là auth0 miễn phí để sử dụng cho mục đích thương mại? – kittu

+0

Hi mgonto ... Làm thế nào để gửi mã thông báo để phụ trợ? – kittu

1

Hãy thử satellizer. Chúng cung cấp việc triển khai máy chủ Java trong thư mục exemple. Kiểm tra xem nó

+0

ví dụ này dựa trên lõi java, tôi đang tìm kiếm mùa xuân Freamwork –

-2

Mặc dù điều này có vẻ phức tạp, nó sẽ rất hữu ích để bạn có thể xem Stormpath. Chúng tôi có một giải pháp khá đơn giản cho việc này. Xin hãy xem Using Stormpath for API Authentication.

Như một bản tóm tắt, giải pháp của bạn sẽ trông như thế này:

  1. Bạn sẽ sử dụng Stormpath Java SDK để dễ dàng giao toàn bộ nhu cầu của người sử dụng quản lý của bạn.
  2. Khi người dùng nhấn nút đăng nhập, giao diện người dùng của bạn sẽ gửi thông tin đăng nhập an toàn đến đầu cuối của bạn thông qua API REST của nó.

    2.1. Nhân tiện, Stormpath tăng cường rất nhiều khả năng ở đây. Thay vì có trang đăng nhập của riêng bạn, bạn hoàn toàn có thể ủy quyền chức năng đăng nhập/đăng ký cho Stormpath qua số IDSite của mình hoặc bạn cũng có thể ủy quyền nó cho Servlet Plugin của chúng tôi. Stormpath cũng hỗ trợ đăng nhập Google, Facebook, LinkedIn và Github.

  3. backend của bạn sau đó sẽ cố gắng để xác thực người dùng chống lại các Stormpath Backend và sẽ trả về một access token kết quả là:

    /** This code will throw an Exception if the authentication fails */ 
    public void postOAuthToken(HttpServletRequest request, HttpServletResponse response) { 
        Application application = client.getResource(applicationRestUrl, Application.class); 
    
        //Getting the authentication result 
        AccessTokenResult result = (AccessTokenResult) application.authenticateApiRequest(request); 
    
        //Here you can get all the user data stored in Stormpath 
        Account account = accessTokenResult.getAccount(); 
    
        response.setStatus(HttpServletResponse.SC_OK); 
        response.setContentType("application/json"); 
    
        //Output the json of the Access Token 
        response.getWriter().print(token.toJson()); 
        response.getWriter().flush(); 
    } 
    
  4. Sau đó, cho mọi yêu cầu xác thực, hỗ trợ của bạn sẽ làm:

    public void getEquipment(HttpServletRequest request, HttpServletResponse response) { 
        Application application = client.getResource(applicationRestUrl, Application.class); 
    
        OauthAuthenticationResult result = (OauthAuthenticationResult) application.authenticateOauthRequest(request).execute(); 
    
        System.out.println(result.getApiKey()); 
        System.out.println(result.getAccount()); 
    
        //Return what you need to return in the response 
        handleEquipmentRequest(response); 
    } 
    

Hãy xem here để biết thêm thông tin

Hy vọng điều đó sẽ hữu ích!

Tuyên bố từ chối trách nhiệm, tôi là người đóng góp Stormpath đang hoạt động.

Các vấn đề liên quan