Tambahkan NodesSSO
ke dependensi paket (dalam file Package.swift
Anda):
dependencies: [
... ,
. package ( url : " https://github.com/nodes-vapor/nodes-sso.git " , from : " 1.0.0 " )
]
serta target Anda (misalnya "Aplikasi"):
targets: [
...
. target (
name : " App " ,
dependencies : [ ... " NodesSSO " ... ]
) ,
...
]
Salin folder NodesSSO
dari Resources/Views
dan Public
dari repo ini dan tempelkan ke proyek Anda ke direktori yang sama. Anda dapat mengunduh repo ini sebagai zip dan kemudian memindahkan file ke direktori yang disebutkan.
Pertama, pastikan Anda telah mengimpor NodesSSO di mana pun diperlukan:
import NodesSSO
public func configure ( _ config : inout Config , _ env : inout Environment , _ services : inout Services ) throws {
try services . register ( NodesSSOProvider < MyNodesSSOAuthenticatableUser > ( config : NodesSSOConfig (
projectURL : " https://myproject.com " ,
redirectURL : " https://url-for-sso.com " ,
salt : " MY-SECRET-HASH-FOR-SSO " ,
environment : env
) ) )
}
Ada juga parameter untuk mengatur rute yang harus mengaktifkan SSO di proyek Anda. Lihat tanda tangan NodesSSOConfig
untuk informasi lebih lanjut.
Pastikan untuk menambahkan rute SSO Node yang relevan, misalnya di configure.swift
atau routes.swift
:
services . register ( Router . self ) { container -> EngineRouter in
let router = EngineRouter . default ( )
try router . useNodesSSORoutes ( MyNodesSSOAuthenticatableUser . self , on : container )
return router
}
Untuk merender penyematan tombol SSO, Anda perlu menambahkan tag Daun NodesSSO:
public func configure ( _ config : inout Config , _ env : inout Environment , _ services : inout Services ) throws {
services . register { _ -> LeafTagConfig in
var tags = LeafTagConfig . default ( )
tags . useNodesSSOLeafTags ( )
return tags
}
}
Pada halaman yang Anda inginkan untuk menampilkan tombol NodesSSO, sematkan file daun sso-button
:
#embed("NodesSSO/sso-button")
NodesSSOAuthenticatable
NodesSSOProvider
bersifat generik dan memerlukan tipe yang sesuai dengan NodesSSOAuthenticatable
. Protokol ini memiliki satu metode yang dipanggil ketika SSO berhasil diselesaikan:
public static func authenticated ( _ user : AuthenticatedUser , req : Request ) -> Future < Response >
Dengan adanya AuthenticatedUser
ini, pelaksana kemudian dapat mencari email
dan membuat pengguna jika tidak ada, atau jika ada, memasukkan pengguna secara otomatis.
Paket ini dikembangkan dan dikelola oleh tim Vapor di Nodes.
Paket ini adalah perangkat lunak sumber terbuka yang dilisensikan di bawah lisensi MIT