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