保存当前用户ID

This commit is contained in:
ylzheng
2015-10-24 21:58:16 +08:00
parent b541d21487
commit f3d4e65916
6 changed files with 32 additions and 11 deletions
+3
View File
@@ -319,6 +319,7 @@
<constraint firstItem="SIX-Qg-kL0" firstAttribute="leading" secondItem="yIh-xg-eKG" secondAttribute="leading" id="UPE-bI-ir4"/>
<constraint firstItem="bPm-kp-unG" firstAttribute="leading" secondItem="rID-rz-Ikg" secondAttribute="leading" constant="15" id="WbN-st-6HW"/>
<constraint firstItem="x2Y-ZI-8hQ" firstAttribute="leading" secondItem="zAW-lF-yk5" secondAttribute="trailing" constant="12" id="ZAr-BQ-eq9"/>
<constraint firstItem="XGc-Dl-Wje" firstAttribute="top" secondItem="vXj-aq-evk" secondAttribute="bottom" constant="15" id="a7O-cr-fyT"/>
<constraint firstItem="Pb5-rZ-PRn" firstAttribute="bottom" secondItem="bIG-eJ-I2C" secondAttribute="bottom" id="aJ0-p2-ni5"/>
<constraint firstItem="x2Y-ZI-8hQ" firstAttribute="bottom" secondItem="bIG-eJ-I2C" secondAttribute="bottom" id="bEJ-rM-Uqg"/>
<constraint firstItem="u7v-Eu-NfC" firstAttribute="top" secondItem="bPm-kp-unG" secondAttribute="top" id="bVH-tC-kn8"/>
@@ -342,6 +343,7 @@
<constraint firstItem="XGc-Dl-Wje" firstAttribute="top" secondItem="yIh-xg-eKG" secondAttribute="bottom" constant="8" id="pVq-Nw-oxo"/>
<constraint firstItem="x2Y-ZI-8hQ" firstAttribute="leading" secondItem="zAW-lF-yk5" secondAttribute="trailing" constant="2" id="pwe-T5-7Dc"/>
<constraint firstItem="dd1-LB-NAs" firstAttribute="bottom" secondItem="bIG-eJ-I2C" secondAttribute="bottom" id="qoE-qP-ZbA"/>
<constraint firstItem="XGc-Dl-Wje" firstAttribute="top" secondItem="yIh-xg-eKG" secondAttribute="bottom" constant="13" id="rs2-wH-q7v"/>
<constraint firstAttribute="trailing" secondItem="XGc-Dl-Wje" secondAttribute="trailing" constant="15" id="tRH-wd-dEt"/>
<constraint firstItem="yIh-xg-eKG" firstAttribute="top" secondItem="rID-rz-Ikg" secondAttribute="top" id="tsa-ww-OpR"/>
<constraint firstItem="yIh-xg-eKG" firstAttribute="top" secondItem="rID-rz-Ikg" secondAttribute="top" id="v4L-cf-1kL"/>
@@ -354,6 +356,7 @@
<exclude reference="QFx-AC-Ggk"/>
<exclude reference="LBg-us-noG"/>
<exclude reference="v4L-cf-1kL"/>
<exclude reference="dU1-mX-4gK"/>
<exclude reference="jUv-1R-Hm4"/>
<exclude reference="pVq-Nw-oxo"/>
<exclude reference="hy0-dm-MUW"/>
-1
View File
@@ -34,7 +34,6 @@ class ContainerViewController: UIPageViewController {
}
let staticProfileTableViewController = self.storyboard?.instantiateViewControllerWithIdentifier("ProfileTableViewController") as! UITableViewController
return [myPostStoriesTableViewController, likeProfileTableViewController, faviroteProfileTableViewController, staticProfileTableViewController]
}()
+1 -1
View File
@@ -14,7 +14,7 @@ struct JsonPaser{
private static let defaultThumail = "http://7pn5d3.com1.z0.glb.clouddn.com/9050353.png"
static func parseProfile(json: JSON) -> Profile {
print(json)
let id: Int = json["id"].int!
+15 -6
View File
@@ -76,7 +76,7 @@ struct LibrxService {
case .User(let userId): return "/api/v1/users/\(userId)"
case .UserPosts(let userId): return "/api/v1/users/\(userId)/posts"
case .UserLikedPosts(let userId): return "/api/v1/users/\(userId)/posts/liked"
case .UserBookMarkPosts(let userId): return "api/v1/users/\(userId)/posts/bookmarked"
case .UserBookMarkPosts(let userId): return "/api/v1/users/\(userId)/posts/bookmarked"
default: return ""
}
@@ -137,6 +137,8 @@ struct LibrxService {
let urlString = baseURL + ResourcePath.UserBookMarkPosts(userId: userId).description
let headers: [String:String] = buildHttpRequestHeader()
print(urlString)
loadPostsByUrl(urlString, headers: headers, response: response)
}
@@ -193,11 +195,11 @@ struct LibrxService {
static func loadPostsByUrl(urlString: String, headers:[String:String], response: ([Post]) ->()) {
print(urlString)
Alamofire.request(.GET, urlString, headers: headers)
.response{ (request, res, data, error) in
let json = JSON(data: data!)
var posts:[Post] = []
for index in 0..<json.count {
@@ -211,7 +213,7 @@ struct LibrxService {
}
static func loginWithEmail(email: String, password: String, response: (token:String?) ->()) {
static func loginWithEmail(email: String, password: String, response: (user:User?) ->()) {
let urlString = baseURL + ResourcePath.SignIn.description
let parameters = [
@@ -225,12 +227,20 @@ struct LibrxService {
let data = JSON(data: json!)
let jwt = data["user"]["token"].stringValue
let name = data["user"]["name"].stringValue
let email = data["user"]["email"].stringValue
let id = data["user"]["id"].intValue
do {
let payload = try JWT.decode(jwt, algorithm: .HS256(email))
let token: String = payload["token"]! as! String
response(token: token)
let user = User(id: id, name: name, email: email, token: token)
response(user: user)
} catch{
response(token: nil)
response(user: nil)
}
}
@@ -307,7 +317,6 @@ struct LibrxService {
static func profile(userId: Int, response: (Profile) -> ()) {
let urlString = baseURL + ResourcePath.User(userId: userId).description
Alamofire.request(.GET, urlString).response{
+10
View File
@@ -11,6 +11,7 @@ import UIKit
struct LocalStore {
private static let accessTokenKey = "accessTokenKey"
private static let accessUserKey = "accessUserId"
private static let userDefaults = NSUserDefaults.standardUserDefaults()
static func setAccessToken(token: String) {
@@ -18,11 +19,20 @@ struct LocalStore {
userDefaults.synchronize()
}
static func setAccessUserId(id: Int) {
userDefaults.setObject(id, forKey: accessUserKey)
userDefaults.synchronize()
}
private static func deleteAccessToken() {
userDefaults.removeObjectForKey(accessTokenKey)
userDefaults.synchronize()
}
static func accessUserId() -> Int? {
return userDefaults.integerForKey(accessUserKey)
}
static func accessToken() -> String? {
return userDefaults.stringForKey(accessTokenKey)
}
+3 -3
View File
@@ -79,11 +79,11 @@ class LoginViewController: UIViewController {
let email = emailTextField.text
let password = passwordTextField.text
LibrxService.loginWithEmail(email!, password: password!) { (token) -> () in
LibrxService.loginWithEmail(email!, password: password!) { (user) -> () in
if let token = token {
if let _user = user {
self.delegate?.loginViewControllerDidLogin(self)
LocalStore.setAccessToken(token)
LocalStore.setAccessToken(_user.token)
self.dismissViewControllerAnimated(true, completion: nil)
}else {
self.alert(NSLocalizedString("username or password error", comment: "for login error"))