nodes sso
Version 0.3.1
將NodesSSO
新增至套件依賴項(在Package.swift
檔案中):
dependencies: [
... ,
. package ( url : " https://github.com/nodes-vapor/nodes-sso.git " , from : " 1.0.0 " )
]
以及您的目標(例如“應用程式”):
targets: [
...
. target (
name : " App " ,
dependencies : [ ... " NodesSSO " ... ]
) ,
...
]
從此儲存庫複製Resources/Views
和Public
中的NodesSSO
資料夾,並將它們貼到專案的相同目錄中。您可以將此儲存庫下載為 zip 格式,然後將檔案移至上述目錄中。
首先確保您已在需要的地方匯入 NodesSSO:
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
) ) )
}
還有一些參數用於設定應在專案中啟用 SSO 的路由。查看NodesSSOConfig
的簽名以獲取更多資訊。
確保新增相關的節點 SSO 路由,例如在您的configure.swift
或routes.swift
中:
services . register ( Router . self ) { container -> EngineRouter in
let router = EngineRouter . default ( )
try router . useNodesSSORoutes ( MyNodesSSOAuthenticatableUser . self , on : container )
return router
}
為了渲染嵌入 SSO 按鈕,您需要新增 NodesSSO Leaf 標籤:
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
}
}
在您希望顯示 NodesSSO 按鈕的頁面上,嵌入sso-button
葉檔:
#embed("NodesSSO/sso-button")
NodesSSOAuthenticatable
NodesSSOProvider
是通用的,需要符合NodesSSOAuthenticatable
的類型。該協定有一個在 SSO 成功完成時被呼叫的方法:
public static func authenticated ( _ user : AuthenticatedUser , req : Request ) -> Future < Response >
有了這個AuthenticatedUser
實施者就可以尋找email
並建立使用者(如果不存在),或者如果存在,則自動讓使用者登入。
該包由 Nodes 的 Vapor 團隊開發和維護。
該軟體包是根據 MIT 許可證授權的開源軟體