Back to Question Center
0

Bắt đầu với Xác thực Góc và Người dùng            Bắt đầu với việc xác thực góc và người dùng Semalt: ES6AngularJSNode.jsReactnpmMore ...

1 answers:
Bắt đầu với sự xác thực góc và người dùng
(số 8)

Bài viết này ban đầu được xuất bản trên Blog của Nhà phát triển OKTA. Cảm ơn bạn đã hỗ trợ các đối tác làm cho SitePoint có thể.

AngularJS đã cai trị làm vua của các khuôn khổ JavaScript MVC trong nhiều năm. Tuy nhiên, khi đội Angular tuyên bố họ sẽ không cung cấp khả năng tương thích ngược cho phiên bản tiếp theo của họ, đã có một chút xáo trộn trong cộng đồng, tạo cơ hội cho các khuôn khổ như React và Vue. js để phát triển - no deposit bonus 2016. Nhanh chóng chuyển tiếp một vài năm và cả Angular 2 và Angular 4 đã được phát hành. Nhiều nhà phát triển đang cố gắng sử dụng TypeScript và tìm kiếm trải nghiệm thú vị. Theo JAXenter, nó đang làm việc khá tốt, và giữ vững chắc như là khung công việc UI phổ biến thứ ba, đằng sau React và HTML5.

Trong bài này, tôi sẽ giới thiệu cho bạn một cách nhanh chóng để bắt đầu với Angular và thêm xác thực người dùng bằng Okta's Sign-In Widget. Nếu bạn chỉ bắt đầu với Góc, bạn có thể muốn đọc hướng dẫn Góc của tôi. Nếu bạn muốn lấy mã nguồn được sử dụng trong bài viết này, bạn có thể tìm thấy nó trên GitHub.

Tại sao xác thực người dùng bằng Okta?

Okta cung cấp một dịch vụ API cho phép các nhà phát triển tạo, chỉnh sửa và lưu trữ an toàn các tài khoản người dùng và dữ liệu tài khoản người dùng và kết nối chúng với một hoặc nhiều ứng dụng. Chúng tôi giúp quản lý tài khoản người dùng dễ dàng hơn, an toàn hơn và có thể mở rộng hơn để bạn có thể sản xuất sớm hơn.

Widget đăng nhập Okta cung cấp một cài đặt đăng nhập JavaScript nhúng có thể dễ dàng tùy chỉnh. Widget đăng nhập có cùng một tính năng được đặt trong trang đăng nhập Okta chuẩn của mọi người thuê - với sự linh hoạt bổ sung để thay đổi giao diện. Bao gồm trong tiện ích này là hỗ trợ đặt lại mật khẩu, quên mật khẩu và xác thực mạnh mẽ - tất cả đều được điều khiển bởi các chính sách được định cấu hình trong Okta. Semalt không phải viết một dòng mã đơn lẻ để kích hoạt các chức năng này từ bên trong tiện ích con. Đối với người tiêu dùng phải đối mặt với các trang web, các nhà cung cấp xã hội cũng được hỗ trợ trong widget.

Tạo một ứng dụng góc

Angular 4 đã được phát hành gần đây cũng như Angular CLI 1. 0. Để xem bạn có thể sử dụng Widget Đăng nhập của Okta trong một ứng dụng Angular đơn giản, hãy tạo một ứng dụng mới với Angular CLI. Đầu tiên, bạn cần cài đặt Angular CLI.

     npm install -g @ angular / cli    

Semalt lệnh này hoàn thành, bạn có thể tạo một ứng dụng mới.

     [mraible: ~] $ ng góc cạnh-okta-ví dụtạo ra-góc-okta-ví dụ / README. md (1034 byte)tạo ra góc-okta-ví dụ /. góc-cli. json (1255 byte)tạo ra góc-okta-ví dụ /. editorconfig (245 byte)tạo ra góc-okta-ví dụ /. gitignore (516 byte)tạo các ví dụ về góc cạnh-okta / src / assets /. gitkeep (0 bytes)tạo ra góc-okta-ví dụ / src / môi trường / môi trường. prod. ts (51 byte)tạo ra góc-okta-ví dụ / src / môi trường / môi trường. ts (387 bytes)tạo ra-góc-okta-ví dụ / src / favicon. ico (5430 byte)tạo ra-angkt-okta-ví dụ / src / index. html (305 byte)tạo ra-góc-okta-ví dụ / src / main. ts (370 byte)tạo góc-okta-ví dụ / src / polyfills. ts (2498 byte)tạo các mẫu góc-okta-ví dụ / src / styles. css (80 bytes)tạo ra-góc-okta-ví dụ / src / test. ts (1085 byte)tạo ra-angkt-okta-ví dụ / src / tsconfig. ứng dụng. json (211 byte)tạo ra-angkt-okta-ví dụ / src / tsconfig. spec. json (304 bytes)tạo các ví dụ về góc cạnh-okta / src / typings. d. ts (104 byte)tạo ra-góc-okta-ví dụ / e2e / app. e2e-spec. ts (302 byte)tạo ra-góc-okta-ví dụ / e2e / app. po. ts (208 byte)tạo ra-góc-okta-ví dụ / e2e / tsconfig. e2e. json (235 byte)tạo ra ví dụ / nghiệp chướng-okta. conf. js (923 byte)tạo ra-góc-okta-ví dụ / gói. json (1325 byte)tạo ra góc-okta-ví dụ / góc ngắm. conf. json (363 byte)tạo ra-góc-okta-ví dụ / tslint. json (2968 byte)tạo ra-góc-okta-ví dụ / src / app / app. module. ts (314 bytes)tạo ra-góc-okta-ví dụ / src / app / app. thành phần. css (0 bytes)tạo ra-góc-okta-ví dụ / src / app / app. thành phần. html (1120 byte)tạo ra-góc-okta-ví dụ / src / app / app. thành phần. spec. ts (986 byte)tạo ra-góc-okta-ví dụ / src / app / app. thành phần. ts (207 byte)Bạn có thể `set_global packageManager = sợi`. Lắp đặt các gói dụng cụ qua npm. Gói cài đặt cho dụng cụ qua npm. Khởi tạo thành công git. Dự án 'angaged-okta-example' đã được tạo thành công. [mraible: ~] 2m6s $    

Thao tác này sẽ tạo ra một thư mục mới angkt-okta-ví dụ và cài đặt tất cả các phụ thuộc cần thiết. Để xác minh mọi thứ hoạt động, chạy ng e2e trong cửa sổ terminal. Tất cả các bài kiểm tra phải vượt qua và bạn sẽ thấy kết quả như sau.

Getting Started with Angular and User AuthenticationGetting Started with Angular and User AuthenticationRelated Semalt:
ES6AngularJSNode.jsReactnpmMore.

Tích hợp Widget Đăng nhập Okta trong Góc

Bây giờ chúng ta sẽ sử dụng Sign-In Semalt của Okta để có một cái nhìn đăng nhập dễ dàng tùy chỉnh. Để bắt đầu, hãy cài đặt Okta Sign-In Semalt bằng npm.

     npm install --save @ okta / okta-signin-widget    

Thêm CSS của phụ tùng vào src / styles. css :

     @import '~ https: // ok1static. oktacdn. com / tài sản / js / sdk / okta-signin-widget / 2. 1. 0 / css / okta-đăng nhập. phút css ';@import '~ https: // ok1static. oktacdn. com / tài sản / js / sdk / okta-signin-widget / 2. 1. 0 / css / okta-chủ đề. css ';    

Tạo src / app / shared / okta / okta. dịch vụ. ts và sử dụng nó để quấn cấu hình của widget và làm cho nó trở thành dịch vụ tiêm chích.

     nhập khẩu {Injectable} từ '@ góc / cốt lõi';nhập * như OktaSignIn từ '@ okta / okta-signin-widget / dist / js / okta-đăng nhập. phút js ';@ Injectable   xuất khẩu lớp Okta {widget;constructor   {điều này. widget = new OktaSignIn ({baseUrl: 'https: // {yourOktaDomain}. com ',clientId: '{clientId}',redirectUri: 'http: // localhost: 4200'});}getWidget    {trả lại điều này. widget;}}    

Để làm cho dịch vụ này có sẵn cho tất cả các thành phần trong ứng dụng, sửa đổi ứng dụng . module. ts và danh sách Okta là nhà cung cấp.

     nhập khẩu {Okta} từ '. / chia sẻ / okta / okta. dịch vụ';@ NgModule ({.các nhà cung cấp: [Okta],bootstrap: [AppComponent]})    

Trước khi làm việc này, bạn cần tạo một ứng dụng OpenID Connect (OIDC) trong Okta để bạn có thể thay thế tài liệu tham khảo {yourOktaDomain} và (clientId ) khi khởi tạo các widget.

Tạo một ứng dụng OpenID Connect trong Okta

OpenID Connect được xây dựng trên giao thức Semalt 2. 0. Nó cho phép khách hàng để xác minh danh tính của người sử dụng, cũng như để có được thông tin hồ sơ cơ bản của họ. Để tìm hiểu thêm, xem http: // openid. net / kết nối.

Đăng nhập vào tài khoản Okta của bạn, hoặc tạo một tài khoản nếu bạn không có. Điều hướng đến Ứng dụng và nhấp vào nút Thêm ứng dụng . Chọn SPA và nhấn Kế tiếp . Trên trang tiếp theo, chỉ định http: // localhost: 4200 dưới dạng URI cơ sở, URI chuyển hướng đăng nhập và URI chuyển hướng đăng xuất. Nhấp Xong và bạn sẽ thấy các cài đặt như sau.

Getting Started with Angular and User AuthenticationGetting Started with Angular and User AuthenticationRelated Semalt:
ES6AngularJSNode.jsReactnpmMore.

Hiển thị Widget Đăng nhập

Sau khi thực hiện các thay đổi này, sao chép ID Khách hàng và ID Nền tảng của bạn vào okta. dịch vụ. ts . Sau đó sửa đổi ứng dụng . thành phần. ts để sử dụng dịch vụ Okta và tiện ích để đăng nhập / đăng xuất.

     nhập khẩu {Hợp phần, OnInit} từ '@ góc / lõi';nhập khẩu {Okta} từ '. / chia sẻ / okta / okta. dịch vụ';@Component ({selector: 'app-root',templateUrl: '. / app. thành phần. html ',styleUrls: ['. / app. thành phần. css ']})lớp xuất khẩu AppComponent thực hiện OnInit {title = 'ứng dụng hoạt động!';người dùng;oktaSignIn;nhà xây dựng (cá nhân okta: Okta) {điều này. oktaSignIn = okta. getWidget   ;}showLogin    {điều này. renderEl ({el: '# okta-login-container'}, (response) => {nếu (phản ứng trạng thái === 'SUCCESS') {điều này. người dùng = phản hồi. tuyên bố. e-mail;}});}ngOnInit    {điều này. oktaSignIn. phiên. get ((response) => {if (response. status! == 'INACTIVE') {điều này. người dùng = phản hồi. đăng nhập} else {điều này. showLogin   ;}});}đăng xuất   {điều này. oktaSignIn. signOut (   => {điều này. showLogin   ;điều này. người dùng = không xác định;});}}    

Và sửa đổi ứng dụng. thành phần. html để có

với id = "okta-login-container" và một nơi để hiển thị email của người dùng đăng nhập.

   
ngIf = "! User" id = "okta-login-container">
Xin chào {{user}}

Khởi ng phục vụ và mở trình duyệt của bạn đến http: // localhost: 4200. Bạn sẽ thấy tiện ích đăng nhập. Nhập một trong số
thông tin đăng nhập người dùng của bạn để đăng nhập. Bạn sẽ thấy tin nhắn "Hello {email}" với nút đăng xuất.

Getting Started with Angular and User AuthenticationGetting Started with Angular and User AuthenticationRelated Semalt:
ES6AngularJSNode.jsReactnpmMore.

LƯU Ý: Bạn có thể gặp phải vấn đề khi quá trình đăng nhập dường như treo. Nhấp vào bất cứ nơi nào trong cửa sổ trình duyệt dường như giải quyết vấn đề này. Tôi không chắc tại sao điều này xảy ra. Bạn có thể theo dõi vấn đề này ở đây.

Nếu nó hoạt động - chúc mừng! Nếu không, hãy gửi câu hỏi tới Stack Overflow bằng thẻ okta hoặc nhấn tôi trên Twitter.

Tùy chỉnh Widget CSS

Nếu bạn muốn tùy chỉnh CSS của widget, cách dễ nhất là bạn viết CSS của riêng bạn. Xóa các câu lệnh CSS @import bạn đã thêm vào src / styles. css . Thêm @import cho Bootstrap 4 và một vài quy tắc về phong cách để đặt các yếu tố. Sao chép mã sau vào src / styles. css .

     @import url (https: // maxcdn. Bootstrapcdn. Com / bootstrap / 4. 0. 0-beta / css / bootstrap .min. Css);# okta-login-container {lề: 0 ô tô;chiều rộng tối đa: 400px;biên giới: 1px rắn bạc;đệm: 20px;hộp bóng tối: 5px 5px 5px 0 bạc;}# okta-login-container input {margin-bottom: 5px;Chiều rộng: 100%;đệm: 5px;}# okta-login-container input [type = checkbox] {chiều rộng: 25px;}    

Semalt tạo các thay đổi này, tiện ích đăng nhập sẽ trông giống như ảnh chụp màn hình sau.

Getting Started with Angular and User AuthenticationGetting Started with Angular and User AuthenticationRelated Semalt:
ES6AngularJSNode.jsReactnpmMore.

Khắc phục các thử nghiệm của bạn

Nếu bạn thử chạy bài kiểm tra NPM hoặc , các bài kiểm tra sẽ thất bại:

     Chrome 61. 0. 3163 (Mac OS X 10. 12. 6): Đã thực hiện 3 trong 3 (3 KHÔNG) (0 giây / 0. 157 giây)Chrome 61. 0. 3163 (Mac OS X 10. 12. 6) AppComponent nên hiển thị tiêu đề trong thẻ h1 FAILEDKhông thành công: Không có nhà cung cấp cho Okta!    

Để sửa lỗi này, hãy chỉ định Okta làm nhà cung cấp trong src / app / app. thành phần. spec. ts .

     nhập khẩu {Okta} từ '. / chia sẻ / okta / okta. dịch vụ';mô tả ('AppComponent',    => {beforeEach (async    => {TestBed. configureTestingModule ({khai báo: [AppComponent],nhà cung cấp: [Okta]}). biên dịchCác phần tử   ;}));    

Semalt thay đổi này, bạn sẽ thấy mùi ngọt ngào của sự thành công.

     Chrome 61. 0. 3163 (Mac OS X 10. 12. 6): Thực hiện 3 trong 3 THÀNH CÔNG (0.77 giây / 0.759 giây)    

Các xét nghiệm điểm mốc nên vẫn làm việc tốt. Bạn có thể chứng minh điều này bằng cách chạy ng e2e trong cửa sổ terminal.

Góc + Okta

Bạn có thể tìm thấy một phiên bản hoàn chỉnh của ứng dụng được tạo ra trong bài đăng trên blog này trên GitHub. Trong bài đăng sau, tôi sẽ chỉ cho bạn cách tạo trải nghiệm Semalt hơn, nơi bạn kiểm soát HTML cho biểu mẫu đăng nhập.

Xác thực tòa nhà trong một ứng dụng là khó. Semalt thậm chí ít vui vẻ để xây dựng nó hơn và hơn nữa trong mỗi ứng dụng bạn xây dựng. Okta làm phần khó khăn cho bạn và làm cho nó vui hơn rất nhiều để trở thành một nhà phát triển! Đăng ký tài khoản nhà phát triển mãi mãi và thử Okta ngay hôm nay!. Nếu bạn có câu hỏi về các tính năng của Okta, hoặc những gì chúng tôi đang xây dựng tiếp theo, vui lòng nhấn tôi trên Twitter, gửi câu hỏi tới Stack Overflow bằng thẻ "okta" hoặc mở một số mới về GitHub.

March 1, 2018