Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import Foundation
- import AWSCognitoIdentityProvider
- import AWSCognito
- class AWSCustomIdentityProvider: NSObject, AWSIdentityProviderManager
- {
- private var dict = NSDictionary()
- func addToken(value:NSString)
- {
- dict = ["graph.facebook.com":value]
- }
- public func logins() -> AWSTask<NSDictionary>
- {
- return AWSTask(result: dict)
- }
- }
- public func loginButtonDidCompleteLogin(_ loginButton: FacebookLogin.LoginButton, result: FacebookLogin.LoginResult){
- switch result {
- case .failed(let error):
- print("FACEBOOK LOGIN FAILED: (error)")
- case .cancelled:
- print("User cancelled login.")
- case .success(_, _, let accessToken):
- let customIdentity = AWSCustomIdentityProvider()
- let token = accessToken.authenticationToken
- customIdentity.addToken(value: token as NSString)
- let credentialsProvider = AWSCognitoCredentialsProvider(regionType: REGIONTYPE, identityPoolId: "XXXXXXXXXXXXXXXXXXXXXXX", identityProviderManager:customIdentity)
- credentialsProvider.clearKeychain()
- credentialsProvider.clearCredentials()
- let serviceConfiguration = AWSServiceConfiguration(region: REDIONTYPE, credentialsProvider: credentialsProvider)
- AWSServiceManager.default().defaultServiceConfiguration = serviceConfiguration;
- credentialsProvider.getIdentityId().continue( { (task: AWSTask!) -> AnyObject! in
- if (task.error != nil) {
- print("Error: " + (task.error?.localizedDescription)!)// gets called
- }
- else {
- print(task.result)//identityid
- }
- return nil
- })
- }
- }
- import AWSLambda
- import Foundation
- struct AWSHelper{
- let lambda = AWSLambda.default()
- let APPLICATION_NAME = "MYAPPLICATION"
- init(){
- }
- func getFunctionName(funcName: String) -> String{
- return "(funcName)_(APPLICATION_NAME)"
- }
- func login(facebookID: String, cognitoID:String, callback:@escaping (Bool) -> Void){
- let req = AWSLambdaInvocationRequest();
- req?.invocationType = AWSLambdaInvocationType.requestResponse
- req?.payload = ["cognitoID" : cognitoID, "facebookID" : facebookID]
- req?.functionName = getFunctionName(funcName: "MYFUNCNAME")
- lambda.invoke(req!) { (response: AWSLambdaInvocationResponse?,error: Error?) in
- print(error)
- let payload = response?.payload
- print(payload)
- callback(true)
- }
- }
- }
- credentialsProvider.credentials().continue({ (task: AWSTask!) -> Any? in
- print(task.result)
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement