Swift 3: Authenticate with custom token(s), managing requests with server (node.js) -
there not information in firebase docs on dealing custom tokens.
i have set server node.js, don't know how manage requests server send information app , vice-versa. resources on how achieve this?
this code node.js server
var serviceaccount = require('./service-account.json'); var firebase = require('firebase'); var path = require("path"); var admin = require('firebase-admin'); var firebasetokengenerator = require("firebase-token-generator"); var refreshtoken; var uid = 'clientid'; var additionalclaims = { admin: true, manager: true, menuaccess: true }; var clientidtoken = firebase.auth().createcustomtoken(uid, additionalclaims); console.log(clientidtoken) firebase.initializeapp({ serviceaccount: path.resolve(__dirname, '/users/myusername/desktop/nodeclient/service-account.json'), databaseurl: "https://<firebase-project>.firebaseio.com/", databaseauthvariableoverride: { uid: "clientid" } }); in xcode:
func login (email: string, password: string, oncomplete: completion?) { self.showactivityindicatory(uiview: self.uiview) firauth.auth()?.signin(withemail: email, password: password, completion: { (user, error) in if error != nil { self.handlefirebaseerror(error: error! nserror, oncomplete: oncomplete) self.stopanimating() } else { // user logged in firauth.auth()?.addstatedidchangelistener { auth, user in if user != nil { let userupdate = ["provider": string(describing:firauth.auth()?.currentuser?.providerid), "email": "email": string(describing: firauth.auth()?.currentuser?.email!) ] dataservice.instance.registerusers(uid: (user?.uid)!, user: userupdate) firauth.auth()?.signin(withcustomtoken: "clientidtoken") {(user, error) in if user != nil { print("got here somehow..") print(user?.uid) // create custom token, user?.uid should "clientid", right? } else { print(error) // error here } } print("signed in") } else { print("not signed in") } } let deadlinetime = dispatchtime.now() + .seconds(1) dispatchqueue.main.asyncafter(deadline: deadlinetime) { self.performsegue(withidentifier: "homesegue", sender: nil) } } }) } optional(error domain=firautherrordomain code=17000 "the custom token format incorrect. please check documentation." userinfo={nslocalizeddescription=the custom token format incorrect. please check documentation., error_name=error_invalid_custom_token})
how shall proceed? know have send credentials server app, how achieve this? thinking of digging jwt , alamofire, , have searched days solve particular problem. have encountered other programmers tackling same issue.
Comments
Post a Comment